เผยแพร่โพสต์โดยทางโปรแกรม (ประเภทโพสต์ที่กำหนดเอง) ด้วยฟิลด์ที่กำหนดเอง


17

ฉันมีประเภทโพสต์ที่กำหนดเอง 'ผู้เข้าร่วม' ที่มีฟิลด์กำหนดเองมากมาย ฉันยังมีฟอร์มที่มีฟิลด์อินพุตที่สอดคล้องกันเพื่อให้ผู้ใช้กรอก เมื่อเขาส่งแบบฟอร์มฉันต้องการให้มีการสร้างโพสต์ใหม่กับแต่ละฟิลด์ที่กำหนดเองซึ่งมีค่าที่ผู้ใช้เลือก

เป็นไปได้ที่จะทำและถ้าเป็นเช่นนั้นได้อย่างไร

คำตอบ:


29

ใช้wp_insert_post ()และadd_post_meta ()เช่นนี้:

// 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);
}

ทำงานได้ดีแม้ใน WordPress 4.4.2 :)!
jave.web

ทุกวันนี้คุณสามารถเพิ่มเมตาไฟล์ผ่านคีย์ meta_input ใน wp_insert_post:'meta_input' => ['_your_custom_1' => $custom1, '_your_custom_2' => custom2]
Andreas

ข้อดีของ @Andreas ฉันขอแนะนำให้คุณเพิ่มเข้าไปในคำตอบใหม่แล้วปล่อยให้มันเริ่มโหวต มันควรจะเป็นคำตอบตอนนี้
webaware

ขอบคุณ @webaware :)
Andreas

ทำงานได้ดีแม้ใน WordPress 5.1 :)!
ฉันเป็นคนที่โง่ที่สุด

6

นอกจากคำตอบที่ยอดเยี่ยมของ @webawareข้างต้นสิ่งนี้สามารถจัดการได้ตั้งแต่wordpress 4.4.0ทั้งหมดผ่านการโทร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

นี้สามารถทำได้ค่อนข้างง่ายโดยใช้ปลั๊กอินฟอร์มแรงโน้มถ่วง คุณสามารถสร้างรูปแบบที่เติมประเภทโพสต์ที่กำหนดเองในแบ็กเอนด์ โพสต์นี้สามารถตั้งให้ปรากฏเป็นแบบร่างหรือเผยแพร่ได้ ไม่มีปัญหาในการเพิ่มฟิลด์ที่กำหนดเอง ในกรณีของฉันฉันใช้เพื่อรวบรวมคำรับรองจากลูกค้า


ฉันชอบโซลูชันนี้โดยเฉพาะถ้าคุณส่งให้ลูกค้าที่ต้องการจัดการแบบฟอร์มด้วยตนเอง
webaware
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.