कस्टम पोस्ट में कस्टम फील्ड्स को कैसे जोड़ें?


20

ठीक है, इसलिए मैंने कुछ कस्टम पोस्ट प्रकार और कुछ टैक्सोनॉमी पंजीकृत किए हैं। अब, मेरे जीवन के लिए, मुझे अपने कस्टम पोस्ट प्रकार के लिए कस्टम फ़ील्ड जोड़ने की आवश्यकता नहीं है।

मुझे एक ड्रॉप डाउन और एक एकल पंक्ति पाठ क्षेत्र की आवश्यकता है। लेकिन मुझे पोस्ट प्रकारों के लिए अलग से फ़ील्ड की भी आवश्यकता है। तो, मान लें कि पोस्ट प्रकार में 3 फ़ील्ड हैं और पोस्ट टाइप 2 में 4 फ़ील्ड हैं, लेकिन फ़ील्ड भिन्न हैं।

कोई भी सुझाव मुझे कोडेक्स को देखने और कुछ खोजने में मदद करेगा, लेकिन मुझे इस बात से कोई मतलब नहीं हो सकता है कि मुझे अपनी functions.phpफ़ाइल में क्या जोड़ना है


जवाबों:


19

यह संभवतः आपके विचार से अधिक जटिल है, मैं एक रूपरेखा का उपयोग करूंगा:

यदि आप अपना स्वयं का लिखना चाहते हैं, तो यहां कुछ अच्छे ट्यूटोरियल हैं:


1
वास्तव में यह इतना कठिन होगा। मैंने सोचा कि यह मेरे कार्यों के लिए एक रजिस्टर कोड जोड़ने के समान सरल होगा जैसे हम पोस्ट प्रकारों और टैक्सोनोमियों के साथ करते हैं।
xLRDxREVENGEx

1
मैं इस उत्तर को प्लस करूंगा, लेकिन यह बहुत जटिल नहीं है। थिंकटविटामिन.कॉम लिंक एक बढ़िया काम करता है जिसमें बताया गया है कि मेटाबोक्स को कैसे जोड़ा जाए और उन्हें कैसे बचाया जाए। Sltaylor.co.uk लिंक कुछ महान कोडिंग प्रथाओं का उपयोग करने पर एक भयानक ट्यूटोरियल है। save_postहुक का उपयोग करते समय सावधानी के मेरे शब्द सावधान रहें । इसे अजीब समय पर कहा जाता है। उपयोग करते समय आने वाली संभावित त्रुटियों को देखने के लिए WP_DEBUG चर को सही पर सेट करना सुनिश्चित करें।
टोलमेनज़

1
बस एक अपडेट मैंने थिंकविटामिन लिंक का उपयोग किया और इससे काफी मदद मिली और यह कस्टम फील्ड स्थापित करने पर एक केक वॉक था
xLRDxREVENGEx

26

आप कस्टम पोस्ट प्रकार की संपादित स्क्रीन पोस्ट करने के लिए supportsतर्क (उपयोग करते समय register_post_type) को जोड़ें / संपादित करें custom-fields:

'supports' => array( 
  'title', 
  'editor', 
  'excerpt', 
  'thumbnail', 
  'custom-fields', 
  'revisions' 
)

स्रोत: https://codex.wordpress.org/Using_Custom_Fields#Displaying_Custom_Fields


2
क्या आप कृपया बता सकते हैं कि यह समस्या क्यों हल हो सकती है?
s_ha_dum

1
हां, यह काम करता है। -1'द जवाब कौन देता है। क्या आप कृपया इसे वापस ले सकते हैं? सादर,
जुनैद कादिर

7
...और फिर.........?
मार्क

9

यद्यपि आपको कुछ सत्यापन जोड़ना होगा, लेकिन यह क्रिया वर्डप्रेस के वर्तमान संस्करण के लिए जटिल नहीं लगती है।

मूल रूप से आपको कस्टम पोस्ट प्रकार में कस्टम फ़ील्ड जोड़ने के लिए दो चरणों की आवश्यकता होती है:

  1. एक मेटाबॉक्‍स बनाएं, जो आपके कस्टम फ़ील्ड को रखता है
  2. अपने कस्टम फ़ील्ड को डेटाबेस में सहेजें

ये चरण विश्व स्तर पर यहां वर्णित हैं: http://wordpress.org/support/topic/is-it-possible-to-add-an-extra-field-to-a-custom-post-type

उदाहरण:

एक कस्टम फ़ील्ड जोड़ें "फ़ंक्शन" को एक कस्टम पोस्ट प्रकार में "प्रीफिक्स-टीममेम्बर्स" कहा जाता है।

सबसे पहले मेटाबेस जोड़ें:

function prefix_teammembers_metaboxes( ) {
   global $wp_meta_boxes;
   add_meta_box('postfunctiondiv', __('Function'), 'prefix_teammembers_metaboxes_html', 'prefix_teammembers', 'normal', 'high');
}
add_action( 'add_meta_boxes_prefix-teammembers', 'prefix_teammembers_metaboxes' );

यदि आपका "प्रीफ़िक्स-टीममेम्बर्स" एड करता है या एडिट होता है, तो add_meta_boxes_{custom_post_type}हुक चालू हो जाता है। फ़ंक्शन के लिए http://codex.wordpress.org/Function_Reference/add_meta_box देखें add_meta_box()। के ऊपर कॉल में add_meta_box()है prefix_teammembers_metaboxes_html, एक कॉलबैक आपके प्रपत्र क्षेत्र को जोड़ने के लिए:

function prefix_teammembers_metaboxes_html()
{
    global $post;
    $custom = get_post_custom($post->ID);
    $function = isset($custom["function"][0])?$custom["function"][0]:'';
?>
    <label>Function:</label><input name="function" value="<?php echo $function; ?>">
<?php
}

दूसरे चरण में आप डेटाबेस के लिए अपने कस्टम क्षेत्र है। save_post_{custom_post_type}हुक को बचाने पर ट्रिगर होता है (v 3.7 से, देखें: /programming/5151409/wordpress-save-post-action-for-custom-posts )। अपने कस्टम फ़ील्ड को सहेजने के लिए आप इसे हुक कर सकते हैं:

function prefix_teammembers_save_post()
{
    if(empty($_POST)) return; //why is prefix_teammembers_save_post triggered by add new? 
    global $post;
    update_post_meta($post->ID, "function", $_POST["function"]);
}   

add_action( 'save_post_prefix-teammembers', 'prefix_teammembers_save_post' );   

"नया जोड़कर उपसर्ग_टैमेमर्स_सैव_पोस्ट को क्यों ट्रिगर किया गया है?" क्या आपको एक उत्तर मिला है, मैं एक अतिरिक्त फ़ंक्शन ट्रिगर पर भी ठोकर खा रहा हूं जिसे मैं याद नहीं कर सकता हूं?
एलेक्स

"एक कस्टम फील्ड जोड़ें 'फंक्शन" को' प्रीफिक्स-टीममेम्बर्स 'नामक एक कस्टम पोस्ट टाइप में जोड़ें। "इसे क्या कहते हैं" का अर्थ है? नाम? एकवचन_नाम? लेबल? हो सकता है कि यह स्ट्रिंग है जिसका उपयोग register_post_type में पहले तर्क के रूप में किया गया है। फ़ंक्शन। या हो सकता है कि इससे कोई फर्क नहीं पड़ता कि यह कितनी देर तक सुसंगत है।
arnoldbird

1

कस्टम मेटा बॉक्स और कस्टम फ़ील्ड के लिए विभिन्न प्लगइन्स हैं। यदि आप एक प्लगइन को देखते हैं जो डेवलपर्स पर केंद्रित है, तो आपको मेटा बॉक्स का प्रयास करना चाहिए । यह हल्का और बहुत शक्तिशाली है।

यदि आप एक मेटा बॉक्स / कस्टम फ़ील्ड के लिए कोड लिखने के तरीके पर एक ट्यूटोरियल की तलाश कर रहे हैं, तो यह एक अच्छी शुरुआत है। यह एक श्रृंखला का पहला हिस्सा है जो आपको कोड को परिष्कृत करने में मदद कर सकता है ताकि इसे विस्तारित करना आसान हो सके।


-6
// slider_metaboxes_html , function for create HTML 
function slider_metaboxes( ) {
   global $wp_meta_boxes;
   add_meta_box('postfunctiondiv', __('Custom link'), 'slider_metaboxes_html', 'slider', 'normal', 'high');
}

//add_meta_boxes_slider => add_meta_boxes_{custom post type}
add_action( 'add_meta_boxes_slider', 'slider_metaboxes' );

परिपूर्ण ज्ञान

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