如果键为空,为什么获取发布元单参数不起作用

时间:2018-11-30 04:29:09

标签: php wordpress wordpress-theming

我想使用以下代码获取所有帖子元:

$metas = get_post_meta( $post_id, '', true );

上面的代码将输出一个类似于以下内容的数组:

array(
    'sample_key1' => array(
        [0] => 'value1'
    ),
    'sample_key2' => array(
        [0] => 'value2'
    ),
    'sample_key3' => array(
        [0] => 'value3'
    )
)

而不是

array(
    'sample_key1' => 'value1',
    'sample_key2' => 'value2',
    'sample_key3' => 'value3'
)

因此$ single参数是正确的。

当您输入以下特定键时,它将起作用:

$meta1 = get_post_meta( $post_id, 'sample_meta1' );

将输出类似:

array(
    [0] => 'value1'
)

当$ single参数为true时:

$meta1 = get_post_meta( $post_id, 'sample_meta1', true );

将输出类似:

'value1'

我将很高兴得到任何答案。

2 个答案:

答案 0 :(得分:0)

使用get_metadata()函数的get_post_meta()函数。并且根据文档get_metadata(),只有在meta_key存在的情况下,第三个布尔参数才有效。

  

如果为true,则仅返回指定meta_key的第一个值。如果未指定meta_key,则此参数无效。

希望这有助于您理解。

答案 1 :(得分:0)

您也可以使用get_post_custom()方法。 它返回包含特定帖子或页面的所有自定义字段的多维数组