想法来源
一开始是想搞一个文章页面,里面能跳转对应分类,还记录了对应的分类数
可惜我使用的主题里并没有现成的模板,也没有在wordpress
里面找到
一开始 抄的 参考的页面里,对应的分类数在控制台里的元素也只是单纯的数字
开玩笑,总不能用死数据吧,真他妈low啊我也没有信心每次都去更新数据
但是,既然系统自己都能展示分类数,那说明有对应的内置函数
通过分类别名获取
核心代码
使用WordPress内置函数get_category_by_slug()
<?php
// 将以下'category-name'改成你的分类别名即可
echo get_category_by_slug('category-name')->count;
?>
可惜,这玩意是php
,没法在页面直接用
我选择的处理的办法是Shortcode
实现代码
首先,你需要将以下PHP代码添加到你的WordPress主题的 functions.php
文件中。这段代码将创建一个名为 category_count
的Shortcode。
// 创建一个显示指定分类文章数量的Shortcode
function display_category_post_count($atts) {
// 提取Shortcode的参数
$atts = shortcode_atts(
array(
'slug' => '', // 默认分类的别名为空
),
$atts,
'category_count'
);
// 根据分类别名获取分类对象
$category = get_category_by_slug($atts['slug']);
// 如果分类存在,返回文章数量;否则返回错误提示
if ($category) {
return $category->count;
} else {
return 'Category not found';
}
}
// 注册Shortcode
add_shortcode('category_count', 'display_category_post_count');
代码解释
display_category_post_count($atts)
函数:这个函数是Shortcode的核心部分,它接收一个参数
$atts
,用来指定分类的别名(slug)。shortcode_atts()
函数:这个函数用于设置Shortcode的默认参数。在这个例子中,默认值为空(即没有指定分类别名)。get_category_by_slug()
函数:此函数根据分类别名获取分类对象。- 返回文章数量或错误消息:如果指定的分类存在,函数会返回该分类下的文章数量;如果分类不存在,则返回一条错误消息。
add_shortcode()
函数:用来注册Shortcode。你可以使用category_count
在WordPress页面或文章中调用这个Shortcode。
使用方式
直接在页面或文章中使用Shortcode
category_count slug="category-name"
记得用[]
包裹起来,我这不方便全部打出来
到时候渲染在页面上直接就是对应数字
这里的 slug="category-name"
是你要显示的分类的别名。别名是分类URL的一部分。
例如,如果你的分类URL是example.com/category/news
,那么别名就是 news
。
通过分类id获取(更推荐)
在wordpress使用久了之后,像什么分类id或者文章id经常会用到
在对应的列表里,将鼠标划到对应名字那,右下角就会出现id
也有让id自动展示的办法
wordpress后台无插件显示文章和分类ID
核心代码
使用内置函数get_category()
<?php
// 将以下cat_ID改成你的分类ID即可
echo get_category(cat_ID)->count;
?>
实现代码
同样放入functions.php
即可
// 创建一个显示指定分类文章数量的Shortcode
function count_id($atts) {
// 提取Shortcode的参数,默认参数为分类ID=0
$atts = shortcode_atts(
array(
'id' => 0, // 默认分类的ID为0,表示没有指定分类
),
$atts,
'count_id'
);
// 根据分类ID获取分类对象
$category = get_category($atts['id']);
// 如果分类存在,返回文章数量;否则返回错误提示
if ($category) {
return $category->count;
} else {
return 'Category not found';
}
}
// 注册Shortcode,Shortcode名为 'count_id'
add_shortcode('count_id', 'count_id');
使用方式
在页面直接输入以下代码,这样直接就是数字
count_id id="5"
记得用[]
包裹起来,我这不方便全部打出来
这个5即是对应的分类id
就这样,在发布对应分类的文章后,页面的数字在展示是就是实时数据了
注意事项:
- 编辑
functions.php
文件前,务必备份文件,以防止因代码错误导致的网站问题。 - Shortcode在前端执行,所以需要确保用户有执行PHP代码的权限,避免潜在的安全风险。
通过这种方法,你可以在WordPress的页面和文章中灵活地使用Shortcode来显示分类文章数量,且不需要每次手动插入PHP代码。
当然,这也是其中一种解决办法,只是比较符合我的使用习惯
如果有不动内置文件的就他妈更好了