在 WordPress 中显示自定义字段元数据编码的多维数组值

问题描述 投票:0回答:1

尝试显示 WordPress 自定义字段 meta_key 值。

data保存为WordPress自定义字段meta_key值

$data = get_post_meta( get_the_ID(), 'data', false);
print_r($data); 



Array (
[0] => [
{
"title":"Title A",
"date":"2024-06-06",
"venue":"Venue X"
},
{
"title":"Title B",
"date":"2010-08-08",
"venue":"Venue Y"
}
]
)

我正在使用的代码

<?php
$data = get_post_meta( get_the_ID(), 'data', false);
$size = count($data[0]);
$i = 0;
for( $j = 0; $j < $size; $j++ ) 
{ 
?>
<p>Title: <?php echo $data[$i][$j]['title']; ?></p>
<p>Date: <?php echo $data[$i][$j]['date']; ?></p>
<p>Venue: <?php echo $data[$i][$j]['venue']; ?></p>
<?php 
} 
?>

我得到的输出

标题:[

日期:[

地点:[

任何关于哪里出了问题的指示。

php arrays json wordpress metadata
1个回答
0
投票

要显示数据,您需要:

  • get_post_meta()
    函数的第三个参数设置为
    true
    而不是
    false
    ,
  • 在其上使用
    json_decode()
    函数(因为它是 JSON 编码的)。

尝试以下操作:

$meta = get_post_meta( get_the_ID(), 'data', true);
$data = json_decode($meta);

foreach ( $data as $values ) { 
   if ( isset($values->title) ) {
       printf('<p>%s: %s</p>', __('Title'), $values->title );
   }
   if ( isset($values->date) ) {
       printf('<p>%s: %s</p>', __('Date'),  $values->date );
   }
   if ( isset($values->venue) ) {
       printf('<p>%s: %s</p>', __('Venue'), $values->venue );
   }
} 
© www.soinside.com 2019 - 2024. All rights reserved.