WP_Query - 在 meta_query 数组中使用变量

问题描述

希望有人能帮忙解决这个问题...
我有一个名为 $comma_separated 的 PHP 变量,它是一个简单的数组。

<?PHP echo $comma_separated; ?>

这给了我这样的结果:

'558927','529306','529227','50921','50923',

我正在尝试在 WP_Query 的 Meta_query 参数中使用此变量,如下所示:

$args = array (
    'post_type'     => 'properties','posts_per_page'  => -1,'paged' => $paged,'Meta_query' => array( 
      array(
        'key' => 'property_code',//this works
        //'value' => array('558927',),//this doesn't
        'value' =>  array( $comma_separated ),'compare' => 'IN',$the_query = new WP_Query( $args );

我尝试手动将字符串添加为值,效果很好,但我无法让变量起作用。希望这是一个简单的修复,但似乎无法弄清楚。任何帮助将不胜感激。

解决方法

正如 CBroe 指出的,array('value,value,value')array('value','value','value') 不同。第一个是 1 个元素,第二个是 3 个元素。

如果你想让你的字符串转换成数组,你必须像这样使用explode:explode( ',',$comma_separated )。这会将字符串转换为数组,分隔符为逗号;)

以下是一些文档:https://www.php.net/manual/en/function.explode.php