修改分类归档页面中的主循环

时间:2014-08-03 作者:Dean Elliott

有没有一种方法可以在单个分类法模板中修改主循环,但在其他模板中保持不变?

在本例中,我有一个名为“Events”的自定义post类型,它又有一个名为“Region”的自定义分类法。我想做的是,不是按发布日期按时间顺序列出每个自定义“事件”,而是按自定义元值(在本例中event_date).

我只想在我的taxonomy-region.php 并保持主循环的任何其他实例不变。

1 个回复
最合适的回答,由SO网友:tfrommen 整理而成

你可以劫持$query 就在拿到帖子之前。

function wpdev_156674_pre_get_posts( $query ) {

    if (
        $query->is_main_query()
        && $query->is_tax( \'region\' )
    ) {
        // Manipulate $query here, for instance like so
        $query->set( \'orderby\', \'meta_value_num\' );
        $query->set( \'meta_key\', \'event_date\' );
        $query->set( \'order\', \'DESC\' );
    }
}
add_action( \'pre_get_posts\', \'wpdev_156674_pre_get_posts\' );

References:

结束

相关推荐

Nested WP_Query breaking loop

我正在使用WP_Query 获取没有子页面的所有页面。对于我再次使用的每个页面WP_Query 获取第一个循环中当前页的所有子页。这一切都很好,我得到了预期的结果。但是现在使用第三个WP_Query 在其中一个子页面上,第二级循环中断。我已经试过了wp_reset_query() 和wp_reset_postdata() 但他们没有做到这一点。我还试图挽救global $wp_query 和global $post 并在循环后重置它们,但这也没有帮助。如何在WP中实现嵌套查询?Edit 根据要求(以及它的