首页 > 解决方案 > 如何获取多个数组的自定义元字段的值

问题描述

我尝试bedrijf从自定义字段的所有值中获取自定义帖子类型的所有帖子的列表。该字段是一个值数组。但是,当我尝试输出自定义字段时,我得到

注意:数组到字符串的转换...

我尝试了不同的方法,例如foreach, wp_pluck_list,但到目前为止,没有成功。

function make_list_regios(){
global $post;
$output = '<ul>';
$post_idees = new WP_Query(array('post_type' => 'bedrijf'));
$values = wp_list_pluck( $post_idees->posts, 'ID');
foreach( $values as $value ) {
$meta_values[] = get_post_meta( $value, 'elements', true );
            $output .= '<li>'.$meta_values.'</li>';
}

return ($output);
}
add_shortcode('regios', 'make_list_regios');

当 I 时print_r($values),它是一个数组post_id。当我打印出来时$meta_values,我得到一个数组,如下所示:

Array ( [0] => [1] => Array ( [0] => groningen [1] => limburg ) [2] => [3] => [4] => Array ( [0] => noordholland [1] => zuidholland ) ) 

我要输出的是选定区域的完整列表。

标签: wordpresspost-meta

解决方案


在@j 的帮助下。scott elbein 我终于解决了这个问题。正确的代码(至少在我的情况下)是:

function make_list_regios(){
global $post;
$output = '<ul>';
$post_idees = new WP_Query(array('post_type' => 'bedrijf'));
$values = wp_list_pluck( $post_idees->posts, 'ID');
foreach( $values as $value ) {
            $meta_values[] = get_post_meta( $value, 'elements', true );
            $meta_values2 = array_filter($meta_values);
            $meta_values3 = call_user_func_array('array_merge', $meta_values2);
}
foreach($meta_values3 as $meta_value3){
            $output .='<li>'.$meta_value3.'</li>';
            }
            $output.='</ul>';
            return ($output);
}
add_shortcode('regios', 'make_list_regios');

推荐阅读