बचत कर की शर्तें


16

मुझे एक दिलचस्प समस्या है जो मुझे आशा है कि कोई जल्दी से जवाब दे सकता है।

मैंने अपना स्वयं का मेटाबॉक्‍स बनाया है, जो "MY METABOX CODE" (नीचे दी गई सूची) पर आधारित है, जो कि मैंने "Event_types" कराए गए कर के भीतर मेरे सभी शब्दों की ड्रॉपडाउन सूची को सही ढंग से प्रदर्शित कर रहा है।

जहाँ मैं किसी समस्या में भाग ले रहा हूँ, ड्रॉपडाउन से एक अलग शब्द चुने जाने पर और पोस्ट अपडेट होने पर पोस्ट से जुड़े शब्द को बचाने / अद्यतन करने में सक्षम हो रहा है।

विभिन्न कोड बिट्स के साथ छेड़छाड़ करने के बाद, मुझे यह पता लगाने में सक्षम था कि MAN_ALLY द्वारा टर्म_ID नंबर (s) [अल्पविराम द्वारा अलग] सरणी क्षेत्र में दर्ज किए जाने के बाद मुझे वे परिणाम मिल रहे हैं जिनकी मुझे तलाश है।

उदाहरण के लिए यदि पोस्ट को सहेजने पर एक फ़ंक्शन को इस कोड को कॉल करना था

wp_set_post_terms( $post_id, array(5,7), 'event_types', FALSE);

तब मेरी पोस्ट अपडेट होगी और शब्द 5_ 7 को उसमें जोड़ दें, जैसा कि आप देख सकते हैं कि मैं सरणी में गुजर रहा हूं। समस्या यह है कि यह मेरे फ़ंक्शंस में मुश्किल है। एफपी फ़ाइल और उपयोगकर्ता द्वारा चयनित ड्रॉपडाउन मान पर आधारित नहीं है (ध्यान दें: मैं वास्तव में केवल एक आईडी पास करने की कोशिश कर रहा हूं लेकिन मैंने नीचे दिए गए अनुसार परीक्षण के लिए दो किए हैं)।

मैं यह भी पता लगाने में सक्षम हूं कि यदि मैं अपनी मेटाबॉक्‍स फ़ाइल में निम्‍न कोड जोड़ता हूं तो मैं असाइन की गई आईडी की सूची को गूँजने में सक्षम हूं लेकिन अंतिम आइटम में अल्पविराम है।

<?php $event_types = wp_get_object_terms($post->ID, 'event_types'); 
foreach ($event_types as $event_type) { echo $event_type->term_id . ','; } ?>

तो ... ऐसा लगता है कि मेरे पास मेरी समस्या का 85% हल है। शेष 15% मेरी समस्या इस प्रकार है:

  1. मुझे अपने फ़ंक्शन.php फ़ाइल कोड (नीचे सूचीबद्ध) में क्या जोड़ने की आवश्यकता है, ताकि जब मैं अपनी टैक्सोनॉमी ड्रॉपडाउन सूची से चुनी गई नई वैल्यू को पोस्ट करूं / अपडेट करूं तो वह ऐरे में पास हो जाए?

  2. हालांकि इस उदाहरण में मैं यह सुनिश्चित करना चाह रहा हूं कि केवल एक एकल वर्गीकरण एक पद के साथ जुड़ा हो सकता है, ऐसी अन्य परिस्थितियां हैं जहां मैं एक चेकबॉक्स सूची बनाना चाहूंगा, जिसके लिए मुझे सरणी में एक से अधिक मान पास करने की आवश्यकता होगी। जैसे, मुझे क्या बदलने की आवश्यकता होगी ताकि शब्द आईडी की अल्पविराम से अलग की गई सूची सरणी में पारित हो जाए? यदि आपके उत्तर में मेरे द्वारा बताए गए उदाहरण कोड के कुछ या कुछ भाग का उपयोग करना शामिल है, जहां मैं आईडी को प्रतिध्वनित करता हूं तो मैं अंतिम आईडी को कैसे सुनिश्चित करता हूं जो मुद्रित है, अंत में अल्पविराम नहीं है? (क्या इसे करने का एक अलग / बेहतर तरीका है? मैंने संकेत देखे जो फ़िल्टर जोड़ने से संबंधित हो सकते हैं लेकिन मुझे यकीन नहीं है कि यह कैसे किया जाता है ...)

आप लोगों का बहुत बहुत धन्यवाद अग्रिम रूप से - नीचे वह कोड है जो मैं वर्तमान में प्रत्येक फ़ाइल में उपयोग कर रहा हूं।

मेरी फंक्शंस में कोड

function save_event_taxonomy_terms($meta, $post_id) {
        $event_types = wp_get_object_terms($post->ID, 'event_types'); 
        wp_set_post_terms( $post_id, array($names), 'event_types', FALSE);
    }

मेरा मेटबॉक कोड

<select name='post_event_types' id='post_event-types'>
// DISPLAY TERMS AS DROP DOWN OPTIONS
    <?php 
    $names = wp_get_object_terms($post->ID, 'event_types'); 
    $event_types = get_terms('event_types', 'hide_empty=0'); 
    ?>
    <option class='event_type-option' value='' <?php if (!count($names)) echo "selected";?>>Not Assigned</option>
    <?php foreach ($event_types as $event_type) {
        if (!is_wp_error($names) && !empty($names) && !strcmp($event_type->slug, $names[0]->slug)) 
        echo "<option class='event_type-option' value='" . $event_type->slug . "' selected>" . $event_type->name . "</option>\n"; 
        else
        echo "<option class='event_type-option' value='" . $event_type->slug . "'>" . $event_type->name . "</option>\n"; 
    }
    ?>
</select>

जवाबों:


6

मुझे लगा कि डिमास मेरी सहायता करने में सक्षम होने के बाद मैं इसका उत्तर दूंगा।

उनकी WPAlchemey क्लास का उपयोग करते हुए मैंने एक save_action वर्जन जोड़ा, जो इस तरह दिखता था (ध्यान दें कि मैं "श्रेणी" के लिए वर्गीकरण का उपयोग कर रहा हूं, बेशक आप अपनी कस्टम टैक्सोनोमी जो भी हो उसे बदल सकते हैं):

'save_action'   => 'save_taxonomy_terms',

मैं इसके लिए निम्न फ़ंक्शन को निम्नानुसार जोड़ता हूं:

function save_taxonomy_terms($meta, $post_id) {
wp_set_post_terms($post_id, array($meta['my_terms']), 'category', FALSE);
}

मेरा मेटाबॉक्‍स कोड, जो इस तरह की करस्‍तरियों की ड्रॉपडाउन सूची प्रदर्शित करता है:

<label>Event Category:</label>
    <?php $terms = get_terms('category', 'hide_empty=0'); ?>
    <?php $mb->the_field('my_terms'); ?>
    <select name="<?php $mb->the_name(); ?>">
    <option value='' <?php if (!count($terms)) echo "selected";?>>Not Assigned</option>
    <?php foreach ($terms as $term): ?>
    <option value="<?php echo $term->term_id; ?>"<?php $mb->the_select_state($term->term_id); ?><?php echo '>' . $term->name; ?></option>
    <?php endforeach; ?>
    </select>
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.