Echo类取决于父类别

时间:2011-10-05 作者:The Fragile Machine

我想做的是根据内容发布的3个主要“父”类别中的哪一个来回显一个类,这是我到目前为止的代码

<article class="post 
<?php 
if ( in_category( \'dream-it\' )){ echo \'dreamit\'; } 
if ( in_category( \'build-it\' )){ echo \'buildit\'; }
if ( in_category( \'get-the-hell-out\' )){ echo \'getout\'; } 
?>
"> 
我知道我做错了,任何帮助都将是惊人的!非常感谢。

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

您可能需要先获取每个帖子类别的父类别。

<?php
$parent_cat = array();
$post_cats = get_the_category($post->ID);
  foreach( $post_cats as $post_cat ) {
  if( $post_cat->parent ) $parent_cat[] = get_category( $post_cat->parent )->slug;
  }
?>
<article class="post  <?php  
  if ( in_array( \'dream-it\', $parent_cat ) ) { echo \' dreamit\'; }  
  if ( in_array( \'build-it\', $parent_cat ) ) { echo \' buildit\'; } 
  if ( in_array( \'get-the-hell-out\', $parent_cat ) ) { echo \' getout\'; }  ?> ">  

SO网友:Mamaduka

使用post_class() 功能如下:

<article <?php post_class(); ?>>
有关更多信息,请查看功能代码页-http://codex.wordpress.org/Function_Reference/post_class

Update

在函数中输入以下代码。php

add_filter( \'post_class\', \'mamaduka_add_parent_category_class\' );
/**
 * Add parent category class to post_class() function
 *
 */
function mamaduka_add_parent_category_class( $classes ) {
    global $post;

    foreach ( (array) get_the_category( $post->ID ) as $cat ) {
        if ( ! empty( $cat->parent ) ) {
            $parent_cat = &get_category( $cat->parent );
            $classes[] = \'category-parent-\' . sanitize_html_class( $parent_cat->slug, $parent_cat->term_id );
        } else {
            $classes[] = \'category-parent-\' . sanitize_html_class( $cat->slug, $cat->term_id );
        }
    }
    return $classes;
}

SO网友:andresmijares

我在过去的一个项目中使用了类似的代码,基本上我需要根据类别显示内容,希望它对你有用!和平

  <?php if (in_category(\'CATEGORY_1\') ) : ?>
    WHATEVER YOU WANT TO DISPLAY
  <?php elseif (in_category(\'CATEGORY_2\') ) : ?> 
    WHATEVER YOU WANT TO ECHO
  <?php elseif (in_category(\'CATEGORY_3\') )  : ?>
    WHATEVER YOU WANT TO ECHO
  <?php else : ?>       

  WHATEVER ELSE :)

  <?php endif; ?>

结束

相关推荐

当使用GET_CATEGORIES或类似工具时,是否也可以过滤包含某些标记的结果?

get_categories() 默认情况下,相关函数不会返回空类别-没有帖子的类别。我想,既然可能有一些底层代码检查帖子数量,那么是否可以额外过滤该列表,使其仅包括那些本身包含与特定标记相关联的帖子的类别?或者有没有一种简单的替代方法来获取这些信息?例如,如果我有一些贴子带有“audio”标签,我想用一种方法get_categories() (或类似结果),但仅检索包含带有“音频”标记的帖子的类别列表。我知道我可能必须直接使用标签ID。我只是在寻找“最好的”,或最合适的方式来做到这一点。谢谢