尝试显示 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
}
?>
我得到的输出
标题:[
日期:[
地点:[
任何关于哪里出了问题的指示。
要显示数据,您需要:
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 );
}
}