2012-11-21 56 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問題,而不是看結果

相關問題