Php 列出多个$query的正确方法->;设置

Php 列出多个$query的正确方法->;设置,php,wordpress,Php,Wordpress,列出多个$query->set的正确方法是什么?允许我有多个$query->set像下面的“code A”一样吗? 还是我应该把它们合并成一个?如果是,您将如何组合这三个$query->set代码?我试着在下面的“代码B”中组合它们,但没有成功 . 代码A:合并$query->set之前 这段代码放在functions.php中 function featured_category( $query ) { if ( $query->is_home() && $que

列出多个$query->set的正确方法是什么?允许我有多个
$query->set
像下面的“code A”一样吗?
还是我应该把它们合并成一个?如果是,您将如何组合这三个
$query->set
代码?我试着在下面的“代码B”中组合它们,但没有成功

.
代码A:合并$query->set之前

这段代码放在functions.php中

function featured_category( $query ) {
    if ( $query->is_home() && $query->is_main_query() ) {
    $query->set( 'category_name', 'new' );
    $query->set( 'cat', '-60, -61' );
    $query->set( 'posts_per_page', 5 );
    }
}
add_action( 'pre_get_posts', 'featured_category' );
function featured_category( $query ) {
    if ( $query->is_home() && $query->is_main_query() ) {
    $query->set( array( 'category_name' => 'new', 'cat' => '-60, -61', 'posts_per_page' => 5) );
    }
}
add_action( 'pre_get_posts', 'featured_category' );
.
代码B:合并$query->set后

这段代码放在functions.php中

function featured_category( $query ) {
    if ( $query->is_home() && $query->is_main_query() ) {
    $query->set( 'category_name', 'new' );
    $query->set( 'cat', '-60, -61' );
    $query->set( 'posts_per_page', 5 );
    }
}
add_action( 'pre_get_posts', 'featured_category' );
function featured_category( $query ) {
    if ( $query->is_home() && $query->is_main_query() ) {
    $query->set( array( 'category_name' => 'new', 'cat' => '-60, -61', 'posts_per_page' => 5) );
    }
}
add_action( 'pre_get_posts', 'featured_category' );

使用
set
方法(属于
WP\u Query
类)的正确方法是传递两个参数-一个查询参数键和一个查询参数值。因此,您的第一个示例(代码A)是正确的方法

您可以在此处查看方法代码:

附言。 如果您想从查询中排除多个类别,请考虑使用<代码> CyryyQuyNoxin < /Cord>查询参数,例如:

$query->set( 'category__not_in', array(60, 61) );

有关类别查询参数的详细信息,请选中“不清楚要执行的操作”。您能解释一下为什么要执行$query->set()吗?是什么让你认为它不起作用呢?'cat'=>'-60,-61'不正确还是不可取需要澄清的是,
'cat'
不接受数组?因此,您建议再问两个问题。如果你使用了太多的
$query->set
,是否会降低你的网站速度另外,如果我想排除类别1、2、3,但具体包括类别4和5,是否允许使用“方法A:
$query->set('cat',array(-1,-2,-3,4,5))
或者您必须执行两个单独的
$query->set
操作,例如“方法B”:
$query->set('category\uu in',array(4,5))
----以及--
$query->set('category\uu not_in',array(4,5))
您可以通过阅读答案中链接的WP\u查询文档来回答所有问题。