我知道如何获得所有Wordpress条款,但我需要一个"过滤"下来版本的结果。是否有可能获得Wordpress查询结果中的所有术语?我在这里有这个问题:
<?php
$args=array(
'post_type' => 'gw_activity',
'post_status' => 'publish',
'orderby' => 'date',
'meta_query' => array(
'relation' => 'AND',
array(
'key' => 'activity_category',
'value' => 'mindful_life',
'compare' => '='
)
),
'posts_per_page' => 10
);
$my_query = null;
$my_query = new WP_Query($args);
if( $my_query->have_posts() ) {
$all_terms = array();
while ($my_query->have_posts()) : $my_query->the_post(); ?>
<?php $terms = wp_get_post_terms( $my_query->post->ID, array( 'gw_activity_tag' ) ); ?>
<?php
foreach ( $terms as $term ) {
$all_terms[] = $term->name;
}
?>
<?php endwhile; }
wp_reset_query();
?>
<!-- End Custom Query -->
<?php
$unique_terms = array_unique( $all_terms );
$result = array_unique($unique_terms);
foreach ($result as $value) {
echo $value . '<br />';
}
&GT;
但我无法确定如何运行查询&amp;放一个&#34;哪里&#34;其中的子句,就像你可以用MySQL一样。任何帮助/建议甚至指出我正确的方向将不胜感激。我被困了
答案 0 :(得分:1)
检查此功能: wp_get_post_terms()
假设您的帖子支持两个名为tax_a
和tax_b
的分类法,您可以尝试这样的内容,确切地说是您撰写评论的位置:
<?php $terms = wp_get_post_terms( $query->post->ID, array( 'tax_a', 'tax_b' ) ); ?>
<?php foreach ( $terms as $term ) : ?>
<p><?php echo $term->taxonomy; ?>: <?php echo $term->name; ?></p>
<?php endforeach; ?>
这将打印查询检索到的每个帖子的所有条款。
修改强> 的
如果您想要的是查询所提交的所有帖子中的所有条款,您可以将值存储在数组中,然后使用 array_unique() 等函数,如下所示:
$all_terms = array();
foreach ( $terms as $term ) {
$all_terms[] = $term->name;
}
// ... and outside the WHILE loop
$result = array_unique( $all_terms );
foreach ( $result as $term ) {
echo $term . '<br/>;
}