簡體   English   中英

通過鍵從“自定義帖子”類型獲取特定的自定義字段

[英]Get Specific Custom Field from Custom Post type by key

我一直在搜索此文件並花了幾天時間,但未在任何地方找到解決方案。 我正在使用代碼按鍵號獲取特定的自定義字段值(請參見下面的代碼),但是我想按鍵名獲取自定義字段的值,例如,鍵名是“ 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>';
}
?>

請幫忙,我在這個問題上待了很長時間。

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'];

如果沒有重組如何保存這些數據,你需要使用某種類型的循環,因為,根據我們的聊天,以保持,您有:

  • 名為“ key”的鍵,其值為“ post-code”
  • 名為“ value”的鍵,其值為“ 12345”

全部放在一個未命名的數組中。 因此,除非您從根本上更改了存儲數據的方式,否則您需要以某種方式進行遍歷。 像上面我所說的那樣,或者在單獨的自定義字段中。

我的一位朋友幫助我,他是一位出色的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>';
?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM