我有一个自定义的帖子类型叫做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>\';
?>
但它没有正常工作。它基本上列出了分类法中的所有帖子,而不是术语中的帖子
最合适的回答,由SO网友:Pieter Goosen 整理而成
您应该使用tax_query
对于此操作。类别参数不能用于自定义分类法
而不是
\'category\' => $catID,
使用
\'tax_query\' => array(
array(
\'taxonomy\' => \'series\',
\'field\' => \'term_id\',
\'terms\' => $catID,
\'include_children\' => false
),
),