突出显示属于当前子类别的帖子

时间:2014-05-07 作者:Arvid Eriksson

我试图突出显示与当前类别页面属于同一类别的列表项。

例如,我有一个名为“食物”的类别,其子类别为:“早餐”、“午餐”和“晚餐”。如果导航到子类别“午餐”(在调用所有帖子的循环中,无论类别如何),我希望突出显示与午餐相关的所有列表项。

首先,我使用get_category->term_id 定义当前所在类别的ID。其次,在循环中,我使用get_the_category[0]->cat_ID 检索每个列表项的ID(但仅检索数组中的第一个)。最后,我使用in_array 查看两个参数之间是否匹配,如果匹配,则返回一个值。

我的问题在于$categories[0]->cat_ID. 如果列表项与多个类别关联,则仅检索数组中的第一个类别是不好的。

如何创建一个参数来输出与循环中列表项关联的所有类别ID?

<?php
$thisTrueCat = get_category( get_query_var( \'cat\' ) ); 
?>


<!-- loop start -->

<?php 
$categories = get_the_category(); 
$categories_id = $categories[0]->cat_ID;            
?>


<?php if( in_array( $thisTrueCat->term_id, array($categories_id) ) ) { echo \'cat-hi\'; }?> 

1 个回复
最合适的回答,由SO网友:TheDeadMedic 整理而成

而不是:

$categories = get_the_category(); 
$categories_id = $categories[0]->cat_ID;    
。。。使用:

$categories = wp_list_pluck( get_the_category(), \'term_id\' );
现在您可以正确使用in_array 要搜索所有帖子的类别,而不仅仅是第一个类别,请执行以下操作:

if ( in_array( $thisTrueCat->term_id, $categories ) )  { ... }

结束

相关推荐

WordPress Get_Categories&列出最近发布的内容缩略图

我正在尝试获取一个页面,列出所有子类别,然后显示它们的名称和该类别中最近帖子的缩略图。这是我得到的以下代码,它似乎从其他不在该类别中的帖子中获取一些缩略图,并重复这些类别。任何帮助都将不胜感激。<?php get_header(); ?> <div id=\"left_full\"> <?php $args = array( \'orderby\' => \'name\',