Cara menampilkan nilai bidang khusus di halaman

17

Saya memiliki jenis posting khusus yang disebut 'perangkat lunak', yang terdapat di dalamnya adalah berbagai bidang khusus seperti subtitle, harga, tangkapan layar, tautan unduhan, dll. Saya membuat fungsi untuk memungkinkan penggunaan jendela edit tinyMCE untuk beberapa bidang khusus ini. Saya telah mencoba untuk menampilkan bidang-bidang ini pada halaman tetapi tidak berhasil.

Metode yang saya gunakan adalah ini:

<h1><?php the_title();?></h1>
<h3><?php echo get_post_meta(get_the_ID(), 'subtitle', TRUE); ?></h3>

Berikut ini tautan ke halaman tersebut.

Di bawah <hr/>halaman ini adalah daftar semua meta yang dibuat. HANYA salah satu bidang yang akan ditampilkan adalah 'harga' untuk beberapa alasan aneh.

Adakah yang tahu apa yang saya lewatkan?

dvmac01
sumber
itu memang get_post_meta()fungsinya, dan jika Anda memanggilnya di dalam loop, itu harus berfungsi ... Kecuali Anda tidak menggunakan nama bidang kustom yang tepat. Mereka sering datang dengan awalan jika diterapkan melalui plugin seperti meta-box. Bisakah Anda memposting kode bagaimana Anda mendeklarasikan bidang khusus Anda? Solusinya adalah dengan membuka tabel wp_postmeta di PhpMyAdmin dan cari kolom meta_keyLIKE% ...% dan tentukan "subtitle" sebagai nilai meta_key. Anda akan melihat persis di bawah nama apa Wordpress menyimpan bidang khusus Anda.
pixeline
Saya tahu ini sudah lama, tetapi saya menggunakan sql ini untuk mendapatkan daftar semua bidang meta di phpmyadmin: PILIH m.meta_key DARI wp_postmeta m GROUP BY m.meta_key
ssaltman

Jawaban:

17

Nah, Anda menggunakan:

get_post_meta(get_the_ID(), 'subtitle', TRUE);

Jadi, Anda mengatakan kepada Wordpress untuk mendapatkan nilai meta dari bidang 'subtitle' dan bahwa nilai yang dikembalikan dalam format string. Lihat get_post_meta () docu .

Untuk mendapatkan semua data meta dari sebuah pos, Anda harus menggunakan fungsi get_post_custom () . Misalnya, jika Anda berada di dalam loop:

$custom = get_post_custom();
foreach($custom as $key => $value) {
     echo $key.': '.$value.'<br />';
}

Ini akan mengembalikan semua data meta pos. Jika Anda ingin memeriksa, misalnya, bidang meta "harga":

if(isset($custom['price'])) {
    echo 'Price: '.$custom['price'][0];
}
cybmeta
sumber
Blok kode terakhir tidak ada a)
carbide20
1
tampaknya $custom['price']mengembalikan array sehingga Anda mungkin perlu melakukannya$custom['price'][0]
wal
3

gunakan kode ini untuk menyelesaikan masalah Anda.

$key_name = get_post_custom_values($key = 'Key Name');
echo $key_name[0];
sharma prempal
sumber