首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >通过key从自定义帖子类型中获取特定的自定义字段

通过key从自定义帖子类型中获取特定的自定义字段
EN

Stack Overflow用户
提问于 2018-06-20 07:10:08
回答 2查看 520关注 0票数 0

我一直在寻找这个问题,花了几天的时间,但在任何地方都没有找到解决方案。我使用代码通过键编号来获取特定的自定义字段值(参见下面的代码),但我希望通过键名称来获取自定义字段的值,例如,键名称是"post- code“。

注意:lead_custom_field是一个自定义字段。

代码语言:javascript
复制
<?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>';
}
?>

请帮帮忙,我被困在这里太久了。

EN

回答 2

Stack Overflow用户

发布于 2018-06-20 07:26:52

get_post_custom()返回与post关联的所有自定义字段。

您可以使用get_post_meta(),它将按键返回单个值。

下面将输出您的lead_custom_field自定义字段键的值。

代码语言:javascript
复制
var_dump( get_post_meta( $post_id, 'lead_custom_field', true ) );

看起来您在lead_custom_field中存储了一个多维数组。您应该考虑将数据重组为更合适的格式,如下所示:

代码语言:javascript
复制
array(
    'post-code' => 12345,
    'first-name' => 'John',
    'last-name' => 'Doe
)

这将允许您简单地执行以下操作:

代码语言:javascript
复制
$data = get_post_meta( $post_id, 'lead_custom_field', true );
echo 'Post Code: '. $data['post-code'];

如果不重组保存数据的方式,您将需要继续使用某种类型的循环,因为,根据我们的聊天,您拥有:

  • 名为" key“、值为”post-code“的密钥
  • 名为" value”、值为“12345”的密钥

都在一个未命名的数组中。因此,您需要以某种方式循环,除非您从根本上改变了存储数据的方式。可以像上面那样放在数组中,也可以放在单独的自定义字段中。

票数 2
EN

Stack Overflow用户

发布于 2018-06-20 22:57:21

我的一个朋友在这方面帮了我,他是一个很棒的php开发者。如果有人在寻找这篇文章,请在这里发帖作为答案。

代码语言:javascript
复制
<?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>';
?>
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50938112

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档