You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

meta_query()中LIKE参数看似失效的原因排查与解决

WordPress meta_query 中 'LIKE' 看似失效的真相

嘿,这个坑我见好多开发者踩过!你一开始觉得LIKE参数失效了,其实压根不是这么回事——问题出在默认排序规则上,不是查询逻辑本身。

先看你的代码片段:

$ref_query = array( 
    'meta_key' => 'reference_code', 
    'value' => array($ref), 
    'compare' => 'LIKE' 
);
$query->set( 'meta_query', $meta_query);

当你把compare设为=时,结果完全符合预期,但换成LIKE后好像没拿到想要的内容,而其他元查询的运算符(比如>=、<=)都正常工作,这很容易让人误以为是LIKE出了问题。

但实际上,LIKE参数完全有效!只是WordPress的查询默认是按文章ID升序排列的,当LIKE匹配出更多结果时,你预期的内容可能被挤到了列表后面,导致你误以为查询没生效。

给你个快速验证的小技巧:临时修改排序规则,让结果按你查询的reference_code字段排序,这样就能一眼看到所有匹配LIKE条件的内容:

// 临时设置按meta字段排序,验证LIKE结果
$query->set('orderby', 'meta_value');
$query->set('meta_key', 'reference_code');
$query->set('order', 'ASC');

这么一改,你就能确认LIKE其实一直在正常工作,只是排序让你产生了误解而已。

内容的提问来源于stack exchange,提问作者Alex Knopp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 08:17:46