Secara terprogram mempublikasikan tulisan (jenis pos khusus) dengan bidang khusus


17

Saya memiliki jenis posting khusus 'Peserta' dengan banyak bidang khusus. Saya juga memiliki formulir dengan bidang input yang sesuai untuk diisi pengguna. Ketika dia mengirimkan formulir, saya ingin posting baru dihasilkan dengan setiap bidang khusus yang berisi nilai yang dipilih oleh pengguna.

Apakah mungkin dilakukan dan jika demikian, bagaimana?

Jawaban:


29

Gunakan wp_insert_post () dan add_post_meta () , seperti ini:

// insert the post and set the category
$post_id = wp_insert_post(array (
    'post_type' => 'your_post_type',
    'post_title' => $your_title,
    'post_content' => $your_content,
    'post_status' => 'publish',
    'comment_status' => 'closed',   // if you prefer
    'ping_status' => 'closed',      // if you prefer
));

if ($post_id) {
    // insert post meta
    add_post_meta($post_id, '_your_custom_1', $custom1);
    add_post_meta($post_id, '_your_custom_2', $custom2);
    add_post_meta($post_id, '_your_custom_3', $custom3);
}

Berfungsi sebagai daya tarik bahkan di WordPress 4.4.2 :)!
jave.web

saat ini, Anda cukup menambahkan meta fileds melalui kunci meta_input di wp_insert_post:'meta_input' => ['_your_custom_1' => $custom1, '_your_custom_2' => custom2]
Andreas

Poin bagus @Andreas, saya sarankan Anda menambahkan itu sebagai jawaban baru dan biarkan mulai mendapatkan suara. Seharusnya jawabannya sekarang.
webaware

Thx @webaware :)
Andreas

Bekerja sebagai daya tarik bahkan di WordPress 5.1 :)!
Saya Orang yang Paling Bodoh

6

Selain jawaban hebat dari @webaware di atas, ini dapat ditangani sejak wordpress 4.4.0 semuanya melalui panggilan wp_insert_post :

$post_id = wp_insert_post(array (
    'post_content' => $content,
    'post_title' => $title,
    'post_type' => 'your_custom_post_type',
    'post_status' => 'publish',

    // some simple key / value array
    'meta_input' => array(
        'your_custom_key1' => 'your_custom_value1',
        'your_custom_key2' => 'your_custom_value2'
        // and so on ;)
    )
));

if ($post_id) {
    // it worked :)
}

4

Ini dapat dicapai dengan cukup mudah menggunakan plugin Gravity Forms . Anda bisa membuat formulir yang mengisi Jenis Posting Kustom di backend. Posting ini dapat diatur agar muncul sebagai konsep atau diterbitkan. Tidak ada masalah menambahkan bidang khusus. Dalam kasus saya, saya menggunakannya untuk mengumpulkan testimonial klien.


Saya suka solusi ini, terutama jika Anda mengirimkannya ke klien yang ingin mengelola formulir itu sendiri.
webaware
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.