我创建了一个包含电视频道数据的自定义帖子类型。每个频道都有自己的帖子。我还创建了通道组的自定义分类法。我要做的是查询所有数据,并将其显示在单个页面的表上,如下所示:
Channel # | Channel Name | Basic Package | Delux Package | Elite Package
1 | NBC | X | X | X
2 | ESPN Classic | | X | X
我需要的是一个查询,它将返回每个帖子的相关分类法。这就是我目前的情况:
$args = array(
\'post_type\' => \'my_channel\',
\'numberposts\' => -1,
\'order_by\' => \'menu_order\',
\'order\' => \'ASC\',
\'tax_query\' => array(
array(
\'taxonomy\' => \'my_channel_package\',
\'field\' => \'slug\',
\'terms\' => array(\'basic\', \'delux\', \'elite\'),
),
),
);
$posts_array = get_posts($args);
但是post数组不返回分类数据。我的下一个选项是使用自定义SQL查询数据库,还是WordPress API中缺少一个功能?
谢谢杰森
最合适的回答,由SO网友:Stephen Harris 整理而成
欢迎来到WPSE Jason,get_posts
用于查询帖子tax_query
其中一部分允许您选择属于特定标准分类法的帖子。
要获取特定帖子的分类术语,请使用get_the_terms
, 将帖子的ID和分类传递给它。它返回一个与该帖子关联并属于指定分类法的分类法术语对象数组。
示例用法:
<?php
$terms = get_the_terms( $post->ID, \'on-draught\' );
//Echo a list of \'on-draught\' terms for this post
echo \'<ul>\';
if ( $terms && ! is_wp_error( $terms ) ) :
foreach ( $terms as $term ) {
echo \'<li>\'.$term->name.\'</li>\';
}
echo \'</ul>\';
?>