我正在尝试使用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模板就是这个问题吗?
感谢您的帮助!谢谢
最合适的回答,由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方法。