如何在WordPress中无分类文章时隐藏Elementor指定行?
解决方案:根据分类文章数隐藏Elementor中的Newsticker行
问题出在get_terms仅获取分类对象,不会返回分类下的文章数量。要实现需求,核心是判断newspicker分类下的已发布文章数,再据此控制显示。
方法1:直接在Elementor中用PHP条件渲染(适合免费版)
如果你的Newsticker内容是用Elementor的「自定义HTML」模块搭建的,可以直接在模块里写PHP条件判断:
<?php // 获取newspicker分类对象(假设是默认文章分类法category,自定义分类法需修改第三个参数) $newspicker_term = get_term_by('slug', 'newspicker', 'category'); // 检查分类存在且文章数>0时,才渲染Newsticker if ($newspicker_term && $newspicker_term->count > 0) { ?> <div id="newsticker"> <!-- 这里放你的新闻滚动内容,比如Elementor的动态文章列表 --> </div> <?php } ?>
注意:如果
newspicker是自定义分类法,把第三个参数改成你的分类法slug(比如get_term_by('slug', 'newspicker', 'your_custom_taxonomy'))。
方法2:用CSS动态隐藏(适合已建好的Newsticker行)
如果已经在Elementor中设计好了Newsticker行,不想重构内容,可以在主题的functions.php中添加以下代码,动态注入CSS隐藏空分类的Newsticker:
add_action('wp_head', 'hide_empty_newsticker_section'); function hide_empty_newsticker_section() { $newspicker_term = get_term_by('slug', 'newspicker', 'category'); // 分类存在且无文章时,添加隐藏样式 if ($newspicker_term && $newspicker_term->count === 0) { echo '<style>#newsticker { display: none !important; }</style>'; } }
方法3:Elementor Pro 条件显示(更直观)
如果你用Elementor Pro版,无需写代码:
- 新建一个自定义动态标签(代码见下方),用于返回
newspicker分类的文章数; - 选中Newsticker所在的Section/容器,打开「高级」选项卡的「条件显示」;
- 添加条件:
动态标签 > 自定义 > Newspicker 分类文章数,设置条件为「大于 0」。
自定义动态标签代码(添加到functions.php):
add_action('elementor/dynamic_tags/register', 'register_newspicker_count_tag'); function register_newspicker_count_tag($dynamic_tags) { class Newspicker_Count_Tag extends \Elementor\Core\DynamicTags\Tag { public function get_name() { return 'newspicker-count'; } public function get_title() { return 'Newspicker 分类文章数'; } public function get_group() { return 'custom'; } public function get_categories() { return [\Elementor\Modules\DynamicTags\Module::TEXT_CATEGORY]; } public function render() { $term = get_term_by('slug', 'newspicker', 'category'); echo $term ? $term->count : 0; } } $dynamic_tags->register_tag('Newspicker_Count_Tag'); }
内容的提问来源于stack exchange,提问作者Marc
相关产品推荐
相关产品推荐

