自定义父类别和子类别

时间:2013-07-22 08:24:42

标签: wordpress loops categories posts

我真的需要你的帮助。我刚刚创建了一个显示所有帖子的WordPress页面模板,但我的问题是自定义父分类/类别的显示和它的子项。我的帖子看起来像这样。

    <table>
  <tr>
    <td>Title</td>
    <td>Parent Category</td>
    <td>Sub Category</td>
    <td>Excerpt</td>
  </tr>
  <tr>
    <td>a title</td>
    <td>USA custom category</td>
    <td>Hawaii uder USA</td>
    <td>this is a sample description.</td>
  </tr>
   </table>

我唯一的问题是显示子类别。有人可以帮帮我吗?

这是关于我如何显示父自定义类别的代码:

 <?php

    $term_list = '';
    $terms     = get_the_terms( $post->ID, 'origincity' );
    foreach( $terms as $term ) {
        $parent_term = get_term( $term->parent, 'origincity' );
        $term_list  .= $parent_term->name ;
    }
    echo $term_list;
   ?>

我尝试通过以下代码显示子类别:

<?php $terms2 = wp_get_post_terms($post->ID, 'origincity', array("fields" => "all"));

foreach ($terms2 as $term1) {
    echo $term1->name.'<br>';
} ?>

但它也会返回父级。 :(

非常感谢您的帮助。感谢。

2 个答案:

答案 0 :(得分:0)

我不建议使用您当前使用的方法,因为您对显示的内容没有足够的控制权。

将来使用get_posts();

使用起来非常简单!例如:

<ul>
<?php

global $post;

$args = array( 'posts_per_page' => 5, 'offset'=> 1, 'category' => 1 );

$myposts = get_posts( $args );

foreach( $myposts as $post ) : setup_postdata($post); ?>
    <li>
          <a href="<?php the_permalink(); ?>"><?php the_title(); ?></a>
        </li>
<?php endforeach; ?>

</ul>

正如您所看到的,您可以设置显示的帖子的数量,类别和更多参数。

在此处了解有关参数的更多信息http://codex.wordpress.org/Template_Tags/get_posts

答案 1 :(得分:0)

已经通过此代码解决了问题:

function print_taxonomic_ranks( $terms ){


    // set id variables to 0 for easy check 
    $order_id = $family_id = $subfamily_id = 0;


    // get family
    foreach ( $terms as $term ) { 
        if ( $family_id || $order_id != $term->parent )
            continue;
        $family_id = $term->term_id;
        $family    = $term->name;
    }

    // get subfamily
    foreach ( $terms as $term ) { 
        if ( $subfamily_id || $family_id != $term->parent ) 
            continue;
        $subfamily_id = $term->term_id;
        $subfamily    = $term->name;
    }

    // output
    echo "$subfamily";

}

谢谢你。