meta\\u查询(&U);定义meta/tax_query
并将新的数组样式参数列表用于多组术语或自定义字段键,那么您的查询可能类似于以下内容
array(
\'tax_query\' => array(
\'relation\' => \'OR\',
array(\'taxonomy\' => \'tax1\', \'field\' => \'slug\', \'terms\' => \'term1\'),
array(\'taxonomy\' => \'tax2\', \'field\' => \'slug\', \'terms\' => \'term2\'),
)
)
结果是:
SELECT SQL_CALC_FOUND_ROWS wp_posts.* FROM wp_posts
INNER JOIN wp_term_relationships ON (wp_posts.ID = wp_term_relationships.object_id)
INNER JOIN wp_term_relationships AS tt1 ON (wp_posts.ID = tt1.object_id)
WHERE 1=1 AND
...
AND (wp_term_relationships.term_taxonomy_id IN (XXX)
OR tt1.term_taxonomy_id IN (YYY) )
...
示例代码取自
this trac ticket by @Otto. 请在那里订阅以跟踪其进度,并投票支持对core进行更改
查询问题&hellip
你好;基本上你会得到
JOIN
对于每列。没有必要,因为桌子已经与1号不锈钢熔化在一起了
JOIN
. 可悲的是,core在当前状态3.3下的行为就是这样。并将在3.4中保持这样。
也许是一个解决方案
您最好的机会是拦截
posts_clauses
过滤插件并手动更改查询。这个解决方案的真正问题是你必须
str_replace( $search, $replace, $query );
在插件中。一方面,这可能会减慢速度,另一方面,你必须遵循这张罚单,因为当这张罚单进入时,你的插件就会崩溃(最好在你的插件代码中留下一个指向罚单的链接)。
我能做什么
跳转到trac并
add your thoughts & patches to the ticket. 如果你是一个真正的英雄,那么你可以尝试
meta_query
问题也来了。
社区会感谢您:)
如果您认为此img不合适,请将其删除