2012-11-21 28 views
0

[编辑] TLDR:答案是:不使用echo,但print_r当第三个参数设置为get_post_meta返回数组真

我曾尝试以下,以获得元值一个字符串,而不是一个数组。第三个值设置为true,所以这应该以字符串结果。

<?php 

    // The data 
    $projects = $wpdb->get_results("SELECT * FROM $wpdb->posts"); 


    // Loop them 
    foreach ($projects as $project) 
    { 
     // Get the meta 
     $metas = get_post_meta($project->ID,'bc_invited', true); 

     // This is rendering 
     echo '<h2>' . $project->post_title . '</h2>'; 

     foreach($metas as $meta){ 
      // This is not rendering 
      echo $meta . '<br/>'; 
     } 

    } 
?> 

为什么我没有看到我的预期?

回答

1

get_post_meta函数接收第三个参数为(boolean)(可选)如果设置为true,则该函数将以字符串的形式返回单个结果。

如果为false或未设置,则该函数返回一个自定义字段数组。这在序列化数组的上下文中可能并不直观。如果你用这个方法获取一个序列化数组,你希望$ single为true,以实际获得一个未序列化的数组。如果您传入false或将其忽略,则您将拥有一个数组,并且索引0处的值将为序列化的字符串。 默认值:false

<?php $meta_values = get_post_meta($post_id, $key, $single); ?> 

现在你的问题是你回来元的阵列和使用的呼应造成你必须使用的print_r问题,而不是看结果

相关问题