改变bbPress标签云短代码(Shortcode)的字体大小
https://domainwebcenter.com/wp-shortcode-change-bbpress-tag-cloud-font-size/
这篇文章展示了
- 如何用多个参数编写自己的WordPress短代码(Shortcode);
- 如何改变字体大小和bbPress标签云上显示的标签数量。
遇到的问题
bbPress标签云短代码[bbp-topic-tags]没有提供任何参数。相关代码位于文件plugins/bbpress/includes/common/shortcodes.php第522行。 这里有3个硬编码的参数:最小字体大小(9),最大字体大小(38),显示的标签数量(80)。
您可以在此处停止阅读,并前往对应文件修改这些默认参数。但是在下次bbPress升级时,您将丢失所做的更改。 如果您不能接受自己的修改被改回去,请继续阅读。
简单的解决方案 - 没有参数
在页面上使用:[bbp-tag-cloud]
你需要将代码添加到你的子主题function.php文件中。
function my_bbp_tag_cloud() {
ob_start();
wp_tag_cloud( array(
‘smallest’ => 10, ‘largest’ => 18, ‘number’ => 27,
‘taxonomy’ => bbp_get_topic_tag_tax_id() ) );
return ob_get_clean();
}
add_shortcode(‘bbp-tag-cloud’, ‘my_bbp_tag_cloud’);
注意:你需要使用ob_start()和ob_get_clean()函数来强制输出你的短代码,而不是在页面的顶部输出。
更难的解决方案-多参数
在页面上使用:[bbPress-tag-cloud smallest="12" largest="20" number="22"]
将以下代码添加到你的子主题function.php文件中。
function param_bbp_tag_cloud( $atts) {
extract(shortcode_atts(array(
‘smallest’ => 10, ‘largest’ => 18, ‘number’ => 27 ), $atts));
ob_start();
wp_tag_cloud( array(
‘smallest’ => $atts[‘smallest’],
‘largest’ => $atts[‘largest’],
‘number’ => $atts[‘number’],
‘taxonomy’ => bbp_get_topic_tag_tax_id() ) );
return ob_get_clean();
}
add_shortcode(‘bbPress-tag-cloud’, ‘param_bbp_tag_cloud’);
总结
在本文中我们解决了几个问题。- 停止使用不灵活的bbPress标签云短代码。
- 将标签云中的字体大小和标签数量的控制从核心文件移到了页面上。
- 学会了如何将参数从短代码传递到函数。