我想填充$list
而不是该示例数据,为每个ID提供包含自定义字段值的数组。像这样:
foreach($idArr as $ID)
array('.'get_post_meta($ID, 'name', true)'.'),
array('.'get_post_meta($ID, 'email', true)'.')
//and so on ...
}
$idArr
包含帖子ID
print_r($idArr);
Array ( [0] => 242 [1] => 241 )
$list = array (
array('aaa', 'bbb', 'ccc', 'dddd'),
array('123', '456', '789'),
array('"aaa"', '"bbb"')
);
答案 0 :(得分:0)
如果我正确解释您的问题,您可以使用get_post_custom();
。
$list = array();
foreach ( $idArr as $ID ) {
$list[] = get_post_custom( $ID );
}
通过这样做你将获得的结构是
$list = array(
0 => array(
'key1' => array( [0] => 'value' ),
'key2' => array( [0] => 'value2' ),
)
);
这个问题是每个自定义字段都可以有多个值,因此您可以返回数组而不是字符串。它相当于get_post_meta( $post_id, 'key', false );
。调整您的代码以使用此格式。
或者,如果您正在寻找特定字段,可以尝试:
$list = array();
foreach ( $idArr as $ID ) {
$fields = get_post_custom( $ID );
$values = array();
// Select only the values you need and add them to the array. REPEAT as needed.
if ( ! empty( $fields['email'][0] ) {
$values[] = $fields['email'][0];
}
$list[] = $values;
}
上面的方法解决了我的第一个例子中的问题,这意味着每个字段都是数组而不是字符串。
我可能也想给每个数组值一个键。例如。 $list[]…
变为$list[ $ID ]…
。