分类法的WordPress查询不起作用

时间:2013-05-30 21:42:13

标签: wordpress

我有一个基本的WordPress循环,它工作正常并输出帖子,直到我尝试向循环添加分类法参数。一旦我将它添加到循环中,它就会停止输出任何内容,但不会出现PHP错误。循环在下面。

<?php 
    $newsLoop = new WP_Query(array('post_type' => 'news&events', 'taxonomy' => 'postcategory', 'term' => 'featured',  'posts_per_page' => 3, 'orderby' => 'post_date', 'order' => 'ASC'));
    while ( $newsLoop->have_posts() ) : $newsLoop->the_post();
?>

<div class="newsEvent">

<h2><?php the_title(); ?></h2>

<?php the_excerpt(); ?>

<p style="text-align:center;"><a href="<?php the_permalink(); ?>">Read More</a></p>

</div> 

<?php endwhile; wp_reset_postdata(); ?>

我已经尝试一起删除帖子类型参数,只是查询分类法,也没有运气。我在这里缺少什么或者没有正确做到吗?

2 个答案:

答案 0 :(得分:1)

我几周前就已经开始做类似的工作了,这就是我给你的东西:

在Functions.php中的

:(注册分类法)。

$args = array(
      'hierarchical'      => true,
      'labels'            => $labels,
      'show_ui'           => true,
      'show_admin_column' => true,
      'query_var'         => true,
      'rewrite'           => array( 'slug' => 'news-category' ),
    );
 register_taxonomy( 'news-tax', array( 'news&events' ), $args );

现在查询:

<?php $args = array( 'news-tax' => 'postcategory', 'post_type' => 'news&events', 'orderby' => 'post_date','order' => 'ASC', 'posts_per_page' => -1);
                    $loop = new WP_Query( $args );
                    while ( $loop->have_posts() ) : $loop->the_post();?>

让我知道这是否有效!此外,您是否能够在没有任何分类的情况下成功查询“新闻和事件”?也许&amp; amp引起了问题?无论哪种方式,我都尝试了很多方法,而且上面的方法对我来说是无缝的。

答案 1 :(得分:0)

您必须使用tax_query参数:

$args = array(
    'post_type' => 'news&events',
    'tax_query' => array(
        array(
            'taxonomy' => 'postcategory',
            'field' => 'slug',
            'terms' => 'featured'
        )
    ),
    'posts_per_page' => 3,
    'orderby' => 'post_date',
    'order' => 'ASC'
);
$newsLoop = new WP_Query( $args );

检查文档:http://codex.wordpress.org/Class_Reference/WP_Query#Taxonomy_Parameters