2017-04-27 50 views
0

有没有办法对特定查询执行'if'语句,我以某种方式命名?我想这样做在function.php一个功能,我可以像Wordpress - 针对特定查询的函数

if ($query->is_main_query()){} 

,但它是主要的查询,我想为条件使用查询是不主要查询这次。

回答

0

你总是可以做到pre_get_posts过滤器内部的逻辑,并在那里适用,如果条件。例如。

add_filter('pre_get_posts', 'limit_archive_posts' ,5); 
function limit_archive_posts($query){ 
    if ($query->is_category) { 
     $query->set('posts_per_page', 3); 
    } 
    if($query->is_single == 1){ 
     $query->set('posts_per_page', 1); 
    } 
    return $query; 
} 
+0

所以我只能针对具体的查询与它的参数? – makesz1

+0

是的,你也可以使用下面的条件进行分类检查:if('magazine'== $ query-> query_vars ['category_name']) –

+0

谢谢,这个条件方案帮助了我! – makesz1

0

你可以这样创建功能:

public function new_venue() 
    {   
    $new_boolean = false; 
    if ($query->is_main_query()){ 
     $new_boolean = true; 
    } 
     return 
    } 
+0

但是如果查询不是主查询呢? – makesz1

+0

你想说什么? – Jenish

+0

如果在子页面的某个地方有一个随机查询,而不是主要查询,我可以将它定位到函数中吗? – makesz1