如何将类别名称从显示中排除?

时间:2016-06-02 作者:Rick Alvarez

所以我尝试以下代码:

<?php
global $post;
$my_query = new WP_Query(\'showposts=8&category_name=featured\');

while ($my_query->have_posts()):
    $my_query->the_post();
    $do_not_duplicate = $post->ID;
    $category = get_the_category();
    $content = get_the_content();
    $image = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID) , \'main-thumbs\');
    $tn_id = get_post_thumbnail_id($post->ID);
    $img = wp_get_attachment_image_src($tn_id, \'main-thumbs\');
    $width = $img[1];
    $height = $img[2];
?>
....
<div class="cat-square <?php
    echo esc_html($category[0]->slug) ?>">
有了这个,我可以设计一个通用div(cat-square),然后根据帖子所在的类别添加一些额外的样式。到目前为止还不错,这是一种魅力。例外情况是,所有科学学科的类别也可以属于Featured 类别因此,有时类别(比如说物理学)会被特色类别所取代。

如何防止这种情况发生?请注意,我并不是要排除帖子本身,只是Featured category nicename和slug

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

功能get_the_category 正在返回对象数组(请参见codex 更多信息),因此,如果帖子分配了多个术语,那么您只需输出第一个术语。

因此,我认为执行foreach循环可以解决您的问题:

foreach ($category as $cat) {
    if ($cat->slug != \'featured\') {
        echo esc_html($cat->slug);
    }
}
希望有帮助!