为什么WP_Query为自定义帖子类型提供了错误的输出?

时间:2015-12-23 16:47:55

标签: php wordpress

我的查询会显示所有内容,包括默认postscardguide和其他自定义帖子类型的帖子。

$args  = array(
    'post_type'     => 'cardguide',
    'taxonomy'      => 'post_tag',
    'tag_id'        => $tag_id, // an integer let's say.. 27
    'posts_per_page'=> -1,
    'orderby'       => 'id',
    'order'         => 'DESC',

);
$my_query = new Wp_query( $args );

^但是这应该仅输出cardguide类型帖子的列表。

所以我在下面使用pre_get_posts挂钩尝试了这个。并显示正确的结果。

$args  = array(
    'taxonomy'      => 'post_tag',
    'tag_id'        => $tag_id,
    'posts_per_page'=> -1,
    'orderby'       => 'id',
    'order'         => 'DESC'
);

// filtering only 'Card Guides' for grid view
function only_card_guides( $wp_query ) {
    $wp_query->set('post_type', 'cardguide');
} add_filter('pre_get_posts', 'only_card_guides');

$my_query = new Wp_query( $args );

预期的解决方法

第二种方法的问题是,当使用pre_get_posts时,我的主题页脚被破坏了。我想默认查询已被修改,并且这样做很糟糕。

有没有办法将查询重置回前一阶段?如果我可以保存以前的状态或类似的东西,我们可以说吗?

需要解决方案

在第一种方法中,为什么查询不起作用。我错过了什么吗?看看WordPress Codex,我可以说我几乎做了与此处所示相同的事情。

0 个答案:

没有答案