确实,有过几款主题,小工具太少的话,对于像小编这样有怎么一个需求,就是首页一个小工具,正文/标签页又是一个小工具,而不同的小工具自然所展示的内容自然是不同的,所以有了需求之后,自然就要着手看下怎么解决这个痛点了。
小编这不解决完了痛点,把遇到的坑给大家讲讲。
首先,注册多个小工具,还是蛮简单的,将下方的代码,放在当前主题下functions.php
文件的?>
之前就可以了,代码如下:
if (function_exists('register_sidebar')) { register_sidebar(array( 'name' => '首页侧边栏', 'id' => 'sidebar-1', 'description' => '首页侧边栏', 'before_widget' => '<aside id="%1$s" class="widget %2$s">', 'after_widget' => '</aside>', 'before_title' => '<h3 class="widget-title">', 'after_title' => '</h3>', )); register_sidebar(array( 'name' => '正文,单页面,标签,分类目录侧边栏', 'id' => 'sidebar-2', 'description' => '正文,页面侧边栏', 'before_widget' => '<aside id="%1$s" class="widget %2$s">', 'after_widget' => '</aside>', 'before_title' => '<h3 class="widget-title">', 'after_title' => '</h3>', )); }
像上方的代码小编就是注册了两个小工具,如果大家需要n个话,就是把相应的代码片段多复制几个,然后名字改改就可以了。
下面要说的是,怎么让小工具生效?这里就遇到了一个坑,就是想在页面上能展示到小工具,至少在代码层面上要添加相应的代码片段把。然后小编做完之后才知道,对应的模板页,压根就没添加小工具的代码,导致小编以为是注册小工具的代码失效了,后台设置上是不是出了问题,所以这点大家一定要记得。
首先,是要在模板页引入小工具(这个引入的地方大家根据自己的小工具要展示的地方来放置的,一般都是放在侧边栏),代码如下:
<?php get_template_part('template/sidebar'); ?>
上面代码的意思是说,要引入主题下面的template
文件夹的sidebar.php
文件的内容。
接下来大家的重心就是sidebar.php
的文件内容了,一般来说这文件里面就是最终控制展示哪个小工具的核心代码了,如上面的列子,小编想首页用sidebar-1
的侧边栏小工具,而正文,单页面,标签,分类目录侧边栏...则使用sidebar-2
这个侧边栏小工具,注意,这里的sidebar-1,sidebar-2,就是大家自己定义的,所以在下面的代码中,如果你的这个id不一样的话,就要进行对应的修改了。
<div class="sidebar"> <?php if (is_single() || is_page()) { ?> <?php dynamic_sidebar('sidebar-2'); ?> <?php } else { ?> <?php dynamic_sidebar('sidebar-1'); ?> <?php } ?> </div>
至此,完美设置了自定义小工具,并成功展示出来了。