You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在WordPress的advisories分类为空时显示一行文本?

我来帮你搞定这段代码的问题,主要有几个关键错误需要修正:

1. in_category()的使用误区

WordPress的in_category()函数只会返回布尔值(true/false),用来判断当前文章是否属于某个分类,它不是一个包含count属性的对象,所以你用->count会直接触发PHP错误,导致代码完全不执行。

2. 逻辑与需求相反

你想要的是「分类为空时显示文本」,但原代码里写的是count > 0时输出,这正好搞反了逻辑,应该判断分类下文章数量为0的时候才显示内容。

3. 输出文本的语法错误

echo test;里的test没有加引号,PHP会把它当作常量解析,如果没定义这个常量就会报错,必须用单引号或双引号把文本包起来,比如echo '暂无内容';。


给你两个可行的修正方案,选一个适合你的场景:

方案一:直接通过分类别名获取文章数量(简洁版)

<?php
// 通过分类别名获取分类对象,这里的'advisories'是分类的slug
$advisories_cat = get_category_by_slug('advisories');

// 判断分类存在且文章数量为0时输出提示
if ($advisories_cat && $advisories_cat->count === 0) {
    echo '这个分类下暂时没有内容哦';
}
?>

方案二:用WP_Query查询(更灵活,适合复杂筛选)

如果需要额外筛选文章状态、类型等,可以用这个:

<?php
$advisories_query = new WP_Query([
    'category_name' => 'advisories',
    'posts_per_page' => -1, // 获取所有符合条件的文章
    'post_status' => 'publish' // 只统计已发布的文章
]);

if ($advisories_query->post_count === 0) {
    echo '这个分类下暂时没有内容哦';
}

// 重置查询,避免干扰后续的WordPress循环
wp_reset_postdata();
?>

注意:如果你的分类是用ID而不是别名,把get_category_by_slug('advisories')换成get_category(分类ID)即可。

内容的提问来源于stack exchange,提问作者keithlatteri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 07:09:06