技术咨询:如何通过函数生成的短代码(short code)在页面展示分类(categories)?
如何用短代码在页面展示分类(Categories)
嘿,我来帮你搞定这个问题!假设你已经有了生成分类展示短代码的函数,那接下来的操作其实很简单,分几步来:
1. 先搞清楚你的短代码支持哪些参数(如果有的话)
先看看你的短代码函数有没有定义可自定义的参数——比如能不能指定要展示的分类ID、最多显示多少个分类、按什么排序,或者要不要隐藏没有文章的空分类。举个例子,如果你的短代码是[show_categories],可能支持这样的写法:
[show_categories parent="0" hide_empty="true" count="8" orderby="name"]
要是不确定参数,你可以去看生成这个短代码的函数代码,或者直接多试几个参数组合看效果。
2. 在页面/文章里插入短代码
- 登录你的网站后台,打开你想展示分类的页面或者文章编辑器。
- 不管是用可视化编辑器还是纯文本编辑器,直接把短代码输进去就行——比如如果不需要额外参数,就直接写
[show_categories];要是有需要的参数,就带上参数一起写。 - 保存页面/文章,然后去前端刷新看看,分类列表应该就显示出来了!
3. 自定义样式让分类更好看(可选)
如果默认的分类展示样式不符合你的网站风格,你可以改短代码函数里的HTML输出,或者加CSS样式。比如把函数里的输出改成带自定义类名的列表:
// 假设这是你的短代码函数里的输出部分 $output .= '<ul class="site-category-list">'; foreach ($categories as $category) { $output .= '<li><a href="' . get_category_link($category->term_id) . '">' . $category->name . '</a></li>'; } $output .= '</ul>';
然后在主题的style.css或者自定义CSS面板里加样式:
.site-category-list { list-style: none; display: flex; flex-wrap: wrap; gap: 12px; padding-left: 0; } .site-category-list li a { padding: 6px 14px; background-color: #f5f5f5; border-radius: 4px; text-decoration: none; color: #333; } .site-category-list li a:hover { background-color: #e0e0e0; }
4. 遇到问题的排查小技巧
- 如果短代码没生效,先检查你的函数有没有正确注册:看看主题的
functions.php里是不是有add_shortcode('show_categories', 'your_category_function_name');这行代码,确保短代码标签和函数名对应上了。 - 要是分类没显示,确认一下你要展示的分类是不是存在,或者如果用了
hide_empty="true",那分类下有没有发布的文章。 - 有时候缓存会搞事情,记得清一下网站缓存和浏览器缓存再看效果。
内容的提问来源于stack exchange,提问作者jordan
相关产品推荐
相关产品推荐

