获取自定义Wordpress查询中的所有条款?

时间:2014-03-27 19:07:45

标签: php wordpress tags

我知道如何获得所有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一样。任何帮助/建议甚至指出我正确的方向将不胜感激。我被困了

1 个答案:

答案 0 :(得分:1)

检查此功能: wp_get_post_terms()

假设您的帖子支持两个名为tax_atax_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/>;
}