WordPress小工具的高级用法

WordPress的小工具(widget)和插件一样,是帮助WordPress扩展各项功能的有力助手之一。
然而大多数人看到widget时,首先想到的就是“重新排列侧边栏各小区块的工具”,不需要用到任何代码。 这种想法没错,不过这只是widget用法的冰山一角罢了。

1. Widget Logic插件

有时候你可能想让不同的页面上显示不同的widget。Widget Logic插件可以帮你做到。

插件安装完毕后,你所用的widget的选项框里会多出一个Widget Logic的输入框。 你可以在这个输入框里填写各种WordPress条件标签,来决定这个widget会出现在哪些页面上。

上面的图表示,Calendar(日历)小工具只出现在名为“Evil”的页面上。 你可以使用多个条件标签,使widget出现在多个页面。

示例

  • 使当前widget只出现在主页上:is_home()
  • 使当前widget只出现在单篇文章页上:is_single()
  • 使当前widget只出现在页面(page)上:is_page()
  • 使当前widget只出现在存档页面(如分类页、标签页):is_archive()
  • 使当前widget只出现在搜索结果页面上:is_search()
  • 使当前widget出现在主页外的所有页面上:!is_home()
  • 使当前widget出现在“广告”或“联系方式”页面上:is_page(‘advertise’) || is_page(‘contact’)

2. 让博客各版块都支持widget

支持widget的主题向来比较受青睐, 不过用户们已经不满足于主题上仅有的widget区域。 如果能让页面上的所有版块都支持widget,那该是多么美妙的一件事。

关于多区域widget,我们之前发布过一篇简单的教程

3. Query Posts工具

Query_posts模板标签是一个强大的WordPress函数,你可以在loop中用它来调用日志和页面。
如果你不了解PHP代码但又想利用query_posts标签的功能,可以使用Query Posts工具来调用WordPress日志和页面,并且可以以多种方式显示这些日志。

安装并启用这个小工具后,你会在后台“小工具”菜单里发现一个叫做“Query Posts”的新选项。

Query Posts能做什么:

  • 按照标签、分类、作者、时间、日期或自定义值显示日志
  • 显示用户规定数字的日志
  • 根据发布时间、标题或ID为日志排序(可升序,也可降序)
  • 以全文、摘要或列表方式显示日志
  • 显示WordPress的页面

4. 404模板

很多WordPress主题(甚至包括默认主题Default)的404模板文件都很平淡,不能提供有帮助性的信息。 例如,当你打开使用这些主题的WordPress网站的404页面时,通常只会看到“Error 404 – Not Found”这样没有人情味的字眼。

“最近文章”、“分类目录”以及“存档”等小工具都可以用到404页面上。

首先需要在主题文件里注册一个“404”widget区域。 打开主题的functions.php文件,加入以下代码:

<?php
register_sidebar( array(
'name' => '404',
'id' => '404',
'before_widget' => '<div id="%1$s">',
'after_widget' => '</div>',
'before_title' => '<h3>',
'after_title' => '</h3>'
) );
?>

这样一个widget就注册成功了,然后你需要编辑主题的404.php文件,在文件里加入下面的代码:

<?php dynamic_sidebar( '404' ); ?>

就这么简单。 接下来你就可以在“404”小工具里加入任何widget了。之后每当有人访问你的404页面时,就会看到这些widget显示的内容(比如搜索框、最新发表的文章、分类目录列表或是Query Post列表等)。

5. 在两篇文章之间插入广告

你可以通过编辑主题在一定数量文章之间插入widget。 有些人就利用这种方法,在文章之间插入了广告。

和在404模板里添加widget一样,首先仍然是在主题里注册一个widget区域。 打开function.php文件,插入下面的代码:

<?php
	register_sidebar( array(
		'name' => 'index-insert',
		'id' => 'index-insert',
		'before_widget' => '<div id="%1$s">',
		'after_widget' => '</div>',
		'before_title' => '<h3>',
		'after_title' => '</h3>'
	) );
?>

要在索引页的文章之间插入广告,首先要打开主题的index.php文件,在结尾的“endwhile”附近插入下面的代码:

<?php if ($count==2) { ?>
<?php dynamic_sidebar('index-insert') ?>
<?php } ?>
<?php $count = $count + 1; ?>
<?php endwhile; ?>

以上代码会在第二篇文章后插入“indx-insert”工具。你可以根据自己的需要,将“$count==2”中的数字2改成其它数字。

如果你希望在存档页(分类页、标签页等)的各篇文章之间插入广告,那么你还需要把上面的代码放入archive.php、category.php、tag.php文件中。利用Widget Logic插件和条件标签,你还可以在不同页面上显示不同类型的广告。

文章转载自 | YESURE技术博客

 

投稿作者 作者网站

评论

 
 

为您推荐


请支持IMCN发展!

谁在捐赠

微信捐赠 支付宝捐赠
微信捐赠 支付宝捐赠
ta的个人站点

发表文章4160篇

关注我的头条 不要放弃,百折不挠,坚强、自信。


微信公众号二维码

归档