पदानुक्रमित वर्गीकरण यूआई


11

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

कृपया इन छवियों को देखें कि मैं किस बारे में बात कर रहा हूं

यहाँ छवि विवरण दर्ज करें यहाँ छवि विवरण दर्ज करें

मैं टैक्सोनोमीज़ को ठीक तरह से प्रदर्शित करना चाहता हूं कि कैसे उन्हें शुरू में केवल सही शब्दों के साथ प्रदर्शित किया जाता है। क्या वर्डप्रेस कोर को सीधे संपादित किए बिना ऐसा करने का एक तरीका है, मैं उपयोग करने के लिए कोई हुक नहीं देख सकता।

आप को भी मदद दे सकते हैं उसके लिए धन्यवाद!

हेलेन


1
सभी उत्तराधिकारी वर्गीकरण के साथ ऐसा होता है, यह बहुत कष्टप्रद है!
टॉम जम्मू नॉवेल

अच्छा प्रश्न। +1।
अनह त्रान

जवाबों:



2

पश्व-अनुरेखन

आइए पहले देखें कि वास्तव में ऐसा कहां होता है:

मेटा बॉक्स पर जोड़ा जाता है post.phpऔर post-new.phpस्क्रीन।

# inside ~/wp-admin/edit-form-advanced.php
// TAGS:
if ( !is_taxonomy_hierarchical($tax_name) )
    add_meta_box('tagsdiv-' . $tax_name, $label, 'post_tags_meta_box', null, 'side', 'core', array( 'taxonomy' => $tax_name ));
// CATEGORIES:
else
    add_meta_box($tax_name . 'div', $label, 'post_categories_meta_box', null, 'side', 'core', array( 'taxonomy' => $tax_name ));

तब हम परिभाषा / मेटा बॉक्स कॉलबैक में जाने के लिए एक फाइल को कोर में गहराई से ले जाते हैं

// inside ~/wp-admin/meta-boxes.php
function post_categories_meta_box( $post, $box )

categorychecklistटैब एक है कि सूची रखती है। इनसाइड के अंदर div, हमें एक फंक्शन मिला है wp_popular_terms_checklist($taxonomy);

# inside ~/wp-admin/includes/template.php
<li id="<?php echo $id; ?>" class="popular-category">
<label class="selectit">
<input id="in-<?php echo $id; ?>" type="checkbox" <?php echo $checked; ?> value="<?php echo (int) $term->term_id; ?>" <?php echo $disabled ?>/>
    <?php echo esc_html( apply_filters( 'the_category', $term->name ) ); ?>
</label>
</li>

»निष्कर्ष:

इसका मतलब है, कि हमें WP फिल्टर / हुक और PHP के साथ सादे सर्वर साइड स्तर पर इसे इंटरसेप्ट करने का वास्तविक मौका नहीं मिला है।

कुछ ऐसा कर रहे हैं ...

add_filter( 'wp_get_object_terms', '__return_empty_array', 20, 4 );

... बस पूरी तरह से जाँच बक्से को निष्क्रिय कर देगा।

अगर मुझे अधिक जानकारी मिली और (शायद एक समाधान) अपडेट हो जाएगा

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