我想禁用主查询的MySQL部分,也就是说,除了步骤4.3外,我希望此页面上的每个步骤都要遵循:http://codex.wordpress.org/Query_Overview
做这件事最简单的方法是什么?
我想禁用主查询的MySQL部分,也就是说,除了步骤4.3外,我希望此页面上的每个步骤都要遵循:http://codex.wordpress.org/Query_Overview
做这件事最简单的方法是什么?
检查此解决方案是否适用于您的案例:
add_filter(\'posts_request\', \'supress_main_query\', 10, 2);
function supress_main_query( $request, $query ){
if( $query->is_main_query() && ! $query->is_admin )
return false;
else
return $request;
}
posts_request
是运行查询之前调用的最后一个筛选器,并将$request
具有生成的SQL字符串和$query
, 使用用于生成查询的WP\\U查询对象。这样,您可以检查这是否是主查询,并返回false以不运行生成的查询。
通常很难完全抛弃WP在堆芯加载过程中坚持要做的事情。然而,以较小的方式和充分的结果处理它们相对容易。
查询有很多筛选器,即posts_where
(带is_main_query()
检查以确保我们只是在修改它)允许我们更改WHERE
SQL查询的一部分。
但是我们应该向它添加什么来摆脱它呢?通常使用以下条件AND 1=0
. 因为它显然不令人满意,所以它有效地缩短了SQL查询的时间,使其没有结果。
我举个例子:$myquery[\'tax_query\'] = array( \'relation\' => \'OR\', array( \'taxonomy\' => \'cities\', \'terms\' => \'boston\', \'field\' => \'slug\', \'operator\' => \'NOT IN\'