我一直在寻找这个问题,花了几天的时间,但在任何地方都没有找到解决方案。我使用代码通过键编号来获取特定的自定义字段值(参见下面的代码),但我希望通过键名称来获取自定义字段的值,例如,键名称是"post- code“。
注意:lead_custom_field是一个自定义字段。
<?php
$custom_fields = get_post_custom($post_id);
$my_custom_field = $custom_fields['lead_custom_field'];
foreach ( $my_custom_field as $key => $value ) {
$a1 = unserialize( $value );
echo '<td>'. $a1[1]['value'] . '</td>';
}
?>
请帮帮忙,我被困在这里太久了。
发布于 2018-06-20 07:26:52
get_post_custom()
返回与post关联的所有自定义字段。
您可以使用get_post_meta()
,它将按键返回单个值。
下面将输出您的lead_custom_field
自定义字段键的值。
var_dump( get_post_meta( $post_id, 'lead_custom_field', true ) );
看起来您在lead_custom_field
中存储了一个多维数组。您应该考虑将数据重组为更合适的格式,如下所示:
array(
'post-code' => 12345,
'first-name' => 'John',
'last-name' => 'Doe
)
这将允许您简单地执行以下操作:
$data = get_post_meta( $post_id, 'lead_custom_field', true );
echo 'Post Code: '. $data['post-code'];
如果不重组保存数据的方式,您将需要继续使用某种类型的循环,因为,根据我们的聊天,您拥有:
都在一个未命名的数组中。因此,您需要以某种方式循环,除非您从根本上改变了存储数据的方式。可以像上面那样放在数组中,也可以放在单独的自定义字段中。
发布于 2018-06-20 22:57:21
我的一个朋友在这方面帮了我,他是一个很棒的php开发者。如果有人在寻找这篇文章,请在这里发帖作为答案。
<?php
$post_id = get_the_ID();
$custom_fields = get_post_custom($post_id);
$my_custom_field = unserialize( $custom_fields['lead_custom_field'][0] );
$params = [];
foreach ($my_custom_field as $k) {
$params[ $k["key"] ] = $k["value"];
}
echo '<td>' . $params["post-code"] . '</td>';
?>
https://stackoverflow.com/questions/50938112
复制相似问题