获取META_QUERY值的Foreach

时间:2014-04-27 作者:Behzad G.

如何获取meta\\u查询值中每个值的meta\\u框,下面是代码:

$my_id = get_post_meta(get_the_ID(), "artist_name", true);
$artistNames = array();  
foreach($my_id as $id) {
    $artistNames[] = $id;
}
$artists = implode($artistNames,", ");

$args = array(
    \'post_type\' => array ( \'songs\', \'videos\' ),
    \'meta_query\' => array(
        array(
            \'key\' => \'artist_name\',
            \'value\' => array( $artists )
        )
    )
);

$query = new WP_Query($args);
这可能吗?!

1 个回复
最合适的回答,由SO网友:s_ha_dum 整理而成

不要内爆$artistNames. 这个value meta_query 如果使用以下任意一种,则参数将接受一个数组compare 参数。你需要IN, 我相信。

值(字符串|数组)-自定义字段值。只有当比较为“IN”、“NOT IN”、“BETWEEN”或“NOT BETWEEN”时,它才可以是数组。。。。

http://codex.wordpress.org/Class_Reference/WP_Query#Custom_Field_Parameters

假设$artistNames 是的数组id你可以直接使用它。

$args = array(
    \'post_type\' => array ( \'songs\', \'videos\' ),
    \'meta_query\' => array(
        array(
            \'key\' => \'artist_name\',
            \'value\' => $artistNames,
            \'compare\' => \'IN\'
        )
    )
);
事实上,看起来你可以先跳过这个foreach 产生$artistNames 而且只要使用$my_id.

$args = array(
    \'post_type\' => array ( \'songs\', \'videos\' ),
    \'meta_query\' => array(
        array(
            \'key\' => \'artist_name\',
            \'value\' => $my_id,
            \'compare\' => \'IN\'
        )
    )
);

结束

相关推荐

Php-用于新POST和编辑POST的条件语句

这个问题是在为编辑创建自定义元框时出现的。php页面。是否有条件语句针对已经存在的帖子和尚未创建的帖子?想法:If editing post (post exists) { // Display custom input field } else if adding post (post does not exist) // Hide custom input field } 此代码段将在自定义元框中使用。我不太确定要搜索什么,因为它似乎很广泛。。。最简单(也