使用PRE_GET_POSTS设置每页帖子,我该怎么做?

时间:2012-04-02 作者:dkmojo

我正在尝试使用pre\\u get\\u posts为分类法中的单个术语设置每页的帖子。有一件事让我很反感,那就是设置了一个术语来应用pre\\u get\\u posts。

这是我的代码:

function filter_press_tax( $query ){
if( $query->query_vars[\'tax_query\'][\'taxonomy\'] == \'press\' && $query->query_vars[\'tax_query\'][\'terms\'][0] == \'press\' ):
    $query->query_vars[\'posts_per_page\'] = 5;
    return;
endif;
}//end filter_press_tax
我不太了解如何访问$查询中的分类法和术语。是的,分类法和术语有相同的名称。这是个坏主意吗?我没有在taxonomy press上设置自定义查询。“tax\\u query”的php模板就是这个问题吗?

感谢您的帮助!谢谢

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

你快到了,伙计。试试这个。

<?php
    add_action(\'pre_get_posts\', \'filter_press_tax\');

    function filter_press_tax( $query ){
        if( $query->is_tax(\'press\') && $query->has_term(\'press\')):
            $query->set(\'posts_per_page\', 5);
            return;
        endif;
    }
?>
您可以使用任何conditional tag 或任何可以传递给WP_Query 要测试您的状况或设置新值,请通过pre_get_posts. 同时尝试$query->get(\'taxonomy\') / $query->get(\'term\').和检查this 对于$query\'s set和get方法。

结束

相关推荐

Term_id和Term_Taxonomy_id有什么不同

标题说明了一切。目前,在我的自定义分类法中,我使用术语id和分类法名称来获取术语。我以为这个问题以前会被问过,但在任何地方都找不到!所以我想问问有没有人有什么答案。