我一直在搜索,花了几天时间,但是没有找到解决方案。我正在使用代码按键号获取特定的自定义字段值(请参见下面的代码),但是我想按键名获取自定义字段的值,例如,键名是“ 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>';
}
?>
请帮助,我被困了这么长时间。
答案 0 :(得分:2)
get_post_custom()
返回与帖子关联的所有自定义字段。
您可以使用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'];
在不重构如何的情况下保存数据,您将需要继续使用某种循环,因为根据我们的聊天记录,您可以:
所有未命名数组内。因此,除非您从根本上更改了存储数据的方式,否则您需要遍历 。像我上面所说的那样,或者在单独的自定义字段中。
答案 1 :(得分:-1)
我的一位朋友帮助我,他是一位出色的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>';
?>