用户登录

07-02-边栏里的小工具的设计

先来看一下我们自己的设计,在边栏上的每个小工具的开始部分,先是用一个带有布局类的 <div> 标签 ... 然后是一个 <section> ,里面还有一个 <div> 标签,上面添加了一个 .dashed-v 类 ,这个类的作者就是在小工具的右边添加一条虚线背景...

我们可以改造一下 ... 可以把这个 .dashed-v 类放在带有布局类的元素里 ... 这样就可以去掉这个 <div> 标签了。

这个布局的 span 类,还有 .dashed-v 这个类我们需要让用户手工输入 ... 也就是在小工具的管理界面上,可以添加这些自定义的 css 类。

这样会非常灵活 ... 用户可以使用不同的布局类,来改变小工具的宽度 ... 一会儿我们要用到一个插件解决这个问题 ...

再看一下小工具的标题 ... 标题用一组 <h3> 标签包围,然后里面还有一组 <span> 标签 ...

下面根据我们的设计,来修改一下注册这个边栏位置的函数 ...

打开主题的 functions.php ...

在 before_widget 后面,输入 <div><section> ... 这是小工具开始要用到的标签 ...

然后在 after_widget 后面输入前面两个标签的结束标签 ... </section></div> ...

WordPress 会自动为每个小工具的上面添加一些 id 或者 类 ... 可以把它们添加到开头的这个 <div> 标签里 ...

id="%1$s" class="%2$s" ...

这里的 %1$s 和 %2$s 会被动态的替换成相应的内容 ...

下面再看一下小工具标题 .... 在 before_title 后面输入标题开始的标签 ... <h3><span>

然后在 after_title 后面输入标签结束的标签 ... </span></h3> ...

现在我们就成功的定义了一个边栏的位置 ... 不过想把在后台发布到这个位置上的小工具显示出来 ... 我们还要在模板文件里添加一几行代码 ...

显示小工具

打开 sidebar.php 这个模板文件 ... 这里我们可以使用 dynamic_sidebar() 这个函数 ...

<?php dynamic_sidebar( ); ?> ... 然后我们让告诉这个函数显示哪个位置的小工具 ...

在括号里面输入边栏的 id ... 'sidebar-bottom' .... 这个 id 是我们在注册这个边栏的时候定义的 ...

在这行代码周围可以再添加一个判断语句 ... 可以使用 is_active_sidebar ...

<?php if ( is_active_sidebar( 'sidebar-bottom' ) ) : ?>

<?php endif; ?>

意思就是,如果是有小工具发布到了 sidebar-bottom 这个位置 ... 那么就执行 if 和 endif 之间的代码 ...

发布小工具

下面回到管理后台 ...

点击 外观 - 小工具 ... 在这个界面的右边,你会看到我们注册的边栏位置 ... Sidebar Bottom ...

我们可以找一个小工具放在这个位置上 ... 新建一个文本类型的小工具 ...

输入标题 ... 底部边栏内容块一 ... 再给它添加点内容 ....

回到前台 ... 刷新 ... 你会看到 ... 在底部边栏上 ... 会显示出发布到这个位置上的小工具 ...

在下面视频里,我们再来解决小工具的布局问题。

<?php if ( is_active_sidebar( 'sidebar-bottom' ) ) : ?>
<?php dynamic_sidebar( 'sidebar-bottom' ); ?>
<?php endif; ?>

function fenikso_widgets_init() {

register_sidebar( array(
'name' => __( 'Sidebar Bottom', 'fenikso' ),
'id' => 'sidebar-bottom',
'description' => __( 'Sidebar Right ', 'fenikso' ),
'before_widget' => '<section id="%1$s" class="%2$s"><div class="inner">',
'after_widget' => '</div></section>',
'before_title' => '<h3><span>',
'after_title' => '</span></h3>',
) );

}
add_action( 'widgets_init', 'fenikso_widgets_init' );

边栏里的小工具的设计《 WordPress 主题开发 》

统计

15260
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点