列出分类术语中的所有帖子

时间:2014-12-21 作者:Ruriko

我有一个自定义的帖子类型叫做anime,还有一个分类法叫做series。如果我查看了任何帖子,并且该帖子属于术语香蕉,那么应该在下拉列表中列出术语香蕉中的所有帖子。以下是迄今为止的代码:

<?php 
    $category = get_terms( \'series\' );
    $catID = $category[0]->term_id;
    $args = array(
        \'numberposts\' => 5, 
        \'category\' => $catID,
        \'post_type\' => \'anime\'          
    );
    $catPosts = get_posts( $args );

    echo \'<form method="POST">\';
    echo \'<select name="goToPost" onchange="document.location=this.value">\';
    echo \'<option value="">\'.__(\'Relevent Posts\', \'your_text_domain\').\'</option>\';  
    foreach( $catPosts as $singlePost ) {
    echo \'<option value="\'.get_bloginfo(\'url\').\'/index.php?p=\'.$singlePost->ID.\'">\'.$singlePost->post_title.\'</option>\';
    };
    echo \'</select>\';
    echo \'</form>\';
?> 
但它没有正常工作。它基本上列出了分类法中的所有帖子,而不是术语中的帖子

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

您应该使用tax_query 对于此操作。类别参数不能用于自定义分类法

而不是

\'category\' => $catID,
使用

\'tax_query\' => array(
        array(
            \'taxonomy\'          => \'series\',
            \'field\'             => \'term_id\',
            \'terms\'             => $catID,
            \'include_children\'  => false
        ),
    ),

结束

相关推荐

Order posts by condition

我需要得到15个帖子。如果有带标签的featured, 我希望他们是第一个。如果没有,我希望其余的是随机帖子。我的想法是根据条件对帖子进行排序tag=featured 描述和随机。我可以用query_posts()?我的失败尝试:query_posts(\'posts_per_page=15&orderby=((tag=featured),rand)&order=desc\'; 谢谢你。