0

[编辑] TLDR:答案:不要使用echo,但是print_r

我尝试了以下方法以将元值作为字符串而不是数组来获取。第三个值设置为 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/>';
        }

    }
?>

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

4

1 回答 1

1

get_post_meta函数将第三个参数接收为(布尔值)(可选)如果设置为 true,则函数将返回单个结果,作为字符串。

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

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

现在您的问题是您将元数据作为数组返回并使用了导致问题的显,您必须使用print_r来查看结果

于 2012-11-21T15:50:23.327 回答