प्रोग्रामेटिक रूप से कस्टम फ़ील्ड के साथ पोस्ट (कस्टम पोस्ट प्रकार) प्रकाशित करें


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

वर्डप्रेस 4.4.2 :) पर भी आकर्षण के रूप में काम करता है!
jave.web

आजकल, आप बस wa_insert_post में meta_input कुंजी के माध्यम से दर्ज किए गए मेटा को जोड़ सकते हैं:'meta_input' => ['_your_custom_1' => $custom1, '_your_custom_2' => custom2]
एंड्रियास

अच्छा बिंदु @ और, मैं सुझाव देता हूं कि आप इसे एक नए उत्तर के रूप में जोड़ते हैं और इसे वोट देना शुरू करते हैं। इसका जवाब अभी होना चाहिए।
वेबवार्ता

Thx @webaware :)
एंड्रियास

वर्डप्रेस 5.1 :) पर भी आकर्षण के रूप में काम करता है!
मैं

6

ऊपर @webaware के महान जवाब के अलावा , यह वर्डप्रेस 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

यह गुरुत्वाकर्षण प्रपत्र प्लगइन का उपयोग करके आसानी से प्राप्त किया जा सकता है । आप एक फॉर्म बना सकते हैं जो बैकएंड में एक कस्टम पोस्ट प्रकार को पॉप्युलेट करता है। इस पोस्ट को ड्राफ्ट के रूप में या प्रकाशित होने के लिए सेट किया जा सकता है। कस्टम फ़ील्ड जोड़ने में कोई समस्या नहीं है। मेरे मामले में, मैंने इसका उपयोग ग्राहक प्रशंसापत्र इकट्ठा करने के लिए किया।


मुझे यह समाधान पसंद है, खासकर यदि आप इसे एक ग्राहक को वितरित कर रहे हैं जो स्वयं फॉर्म का प्रबंधन करना चाहता है।
वेब डे
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.