改变bbPress标签云短代码(Shortcode)的字体大小

文章目录
  1. 这篇文章展示了
  2. 遇到的问题
  3. 简单的解决方案 - 没有参数
  4. 更难的解决方案-多参数
  5. 总结
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标签云短代码。
  • 将标签云中的字体大小和标签数量的控制从核心文件移到了页面上。
  • 学会了如何将参数从短代码传递到函数。
剩下唯一要做的就是缩短代码,使其更容易阅读和维护。