WordPress

小工具添加边栏标签云

老墨 · 3月29日 · 2019年 · · · 63次已读

给边栏添加标签云的方法在网上比较多,这里介绍如何通过小工具去添加。老墨认为这种方式更灵活,将其作为一个模块,对于以后的增减和位置调整更方便。

思路

  1. 让小工具支持php代码。
  2. 添加小工具,填加调用标签云的代码。
  3. 调整css。

步骤

小工具里的文本小工具,可以添加任意文本或HTML代码,但是却无法直接运行PHP代码。我们要做的就是让文本小工具支持运行PHP代码,并调用WP自带的标签云,最后通过css调整样式即可。

想让文本小工具运行PHP代码,有两种方法:在functions.php里增加代码或者安装插件

方法一:修改主题的functions.php

首选此法,简单添加几行代码即可,完全免插件。

将下面代码加到functions.php文件的最后,注意是 ?> 之前:

//实现侧边栏文本工具运行PHP代码
add_filter('widget_text', 'php_text', 99);
function php_text($text) {
if (strpos($text, '<' . '?') !== false) {
ob_start();
eval('?' . '>' . $text);
$text = ob_get_contents();
ob_end_clean();
}
return $text;
}

保存后,主题的文本小工具已经支持运行PHP代码了,之后在“外观-小工具”里向侧边栏添加文本小工具,输入代码即可(见方法二中的代码)。

方法二:使用插件

老墨目前使用的主题比较复杂,修改functions后有一些小问题,干脆直接用了插件,兼容的比较完美。如果老弟们用方法一也同样遇到问题,那就跟老墨一样直接安装插件吧,简单粗暴。

在wordpress插件界面搜索安装 “Enhanced Text Widget

安装后在 “外观-小工具” 里会看到多了一个“Enhanced Text”,将其添加到边栏,填入相应设置。

Title根据需要填写,代码框里输入下面代码:

<div class="tagcloud_sidebar"><?php 
wp_tag_cloud('smallest=12&largest=12&unit=px&number=40&orderby=count&order=DESC');
?></div>

函数参数解释:

  • smallestlargest用来设置最小(默认8)和最大(默认22)字号
  • unit 标签云字体所使用的单位:pt(默认),em,px等
  • number 显示标签的数量:0为显示全部,默认显示45个
  • format 标签云的样式:flat(默认)-标签之间隔开排列;list-列表形式
  • orderby 标签云依据:name(默认)-按字母;count-按频率
  • order 排序顺序:ASC(默认)-按升序;DESC-按降序
  • exclude 排除某个标签。每个标签都有一个ID,如果你希望哪一个标签不显示,那就用’exclude=此标签ID′。那相应的标签就不会显示。默认显示全部。
  • include 包括某个标签。跟 exclude相反。如果你用’include=5,12′,那就只显示这两个ID的标签。

因为老墨需要显示成同样大小,所以最大和最小字号都设成了12,各位可以根据需要修改。

两种方法总有一个适合你,剩下就是css了,给 .tagcloud_sidebar 增加样式,这个就靠你自己尽情折腾了。

老墨现在侧边栏的标签云便是如此实现的,各位同学可以参考。

0 条回应