我去找约翰内斯的答案。但是,我想改善这一点,因为使用该meta_query会遇到类似这样的情况
你的价值是
array('sports','movies', 'sports2');
当您搜索
$args = array(
'post_type' => 'news',
'meta_query' => array(
array(
'key' => 'topics',
'value' => 'sports',
'compare' => 'LIKE'
)
)
);
那么结果将同时返回“ sport”和“ sport2”。
要解决此问题,请将meta_query args更改为
$args = array(
'post_type' => 'news',
'meta_query' => array(
array(
'key' => 'topics',
'value' => 'sports";',
'compare' => 'LIKE'
)
)
);
这是因为该值已在数据库中序列化,并且每个项目将由分号分隔。因此,上述args将起作用
如果值中的项目是数字,则只需删除双引号“
$args = array(
'post_type' => 'news',
'meta_query' => array(
array(
'key' => 'topics',
'value' => '1;',
'compare' => 'LIKE'
)
)
);