कस्टम पोस्ट प्रकार को हटा दें


13

मैंने निम्नलिखित के साथ पोस्ट प्रकार दर्ज किया है -

$holidayLabels = array(
    'name' => __( 'Holidays'),
    'singular_name' => __( 'Holidays'),
    'all_items' => __( 'All Holidays'),
    'add_new' => __( 'Add New Holiday'),
    'add_new_item' => __( 'Add New Holiday'),
    'edit_item' => __( 'Edit Holiday'),
    'new_item' => __( 'New Holiday'),
    'view_item' => __( 'View Holidays'),
    'not_found' => __( 'No Holidays found'),
    'not_found_in_trash' => __( 'No Holidays found in Trash'),
    'parent_item_colon' => ''

);

$holidayArgs = array(
    'labels'               => $holidayLabels,
    'public'               => true,
    'publicly_queryable'   => true,
    '_builtin'             => false,
    'show_ui'              => true,
    'query_var'            => true,
    'rewrite'              => array( "slug" => "holidays" ),
    'capability_type'      => 'post',
    'hierarchical'         => false,
    //'menu_position'        => 6,
    'supports'             => array( 'title'),
    'has_archive'          => false,
    'show_in_nav_menus'    => false,

);
register_post_type('holidays', $holidayArgs);

और जब मैं नई छुट्टी पोस्ट करता हूं या मौजूदा एक का संपादन शुरू करता हूं, तो मैं नीचे दिए गए पर्मलिंक को हटाना चाहता हूं। यहाँ छवि विवरण दर्ज करें

मैं इसे हटाना चाहता हूं क्योंकि, छुट्टियों को अलग विजेट में प्रदर्शित किया जाएगा। मैं नहीं चाहता कि किसी भी तरह से इसे सिंगल पोस्ट के रूप में देखा जा सके। इस तरह के लिए कोई टेम्पलेट परिभाषित नहीं है।


क्या आप चाहते हैं कि उनके पास संग्रह पृष्ठ हो और उन्हें पर्मलिंक के साथ एक्सेस करने में सक्षम होना चाहिए?
Krzysiek Dróżdż

@ KrzysiekDróżdz सं। इसलिए मैं पर्मलिंक को दूर करना चाहता हूं। ऐसा कोई पृष्ठ उपलब्ध नहीं है। छुट्टियों को विजेट में ही दिखाया जाएगा और मॉडल में अजाक्स के साथ विवरण दिया जाएगा।
सचिनगुट

तो आपको भी पेरीलिंक्स, आर्काइव्स इत्यादि को निष्क्रिय करने का ध्यान रखना चाहिए। मेरे जवाब पर एक नज़र डालें;)
Krzysiek Dróżd

जवाबों:


41

खैर, एक और तरीका है। और बेहतर है, मुझे लगता है।

आपको register_post_typeमापदंडों को देखना चाहिए । आपको शायद उन्हें इस तरह सेट करना चाहिए:

'public' => false,  // it's not public, it shouldn't have it's own permalink, and so on
'publicly_queryable' => true,  // you should be able to query it
'show_ui' => true,  // you should be able to edit it in wp-admin
'exclude_from_search' => true,  // you should exclude it from search results
'show_in_nav_menus' => false,  // you shouldn't be able to add it to menus
'has_archive' => false,  // it shouldn't have archive page
'rewrite' => false,  // it shouldn't have rewrite rules

यदि पोस्ट प्रकार सार्वजनिक नहीं है, तो आप संपादक के इस हिस्से को नहीं देखेंगे।


Krzysiek Dróżd Will द्वारा किए गए जवाब को चखने से क्या यह कस्टम टैक्सोनॉमीज़ पर लागू हो सकता है? पीडी: यह यहाँ पोस्ट करने के लिए क्षमा करें, मेरे पास एक साधारण टिप्पणी करने के लिए पर्याप्त प्रतिष्ठा नहीं है
लिंगेंड

1

खैर, सीएसएस का उपयोग करके कंटेनर डिव को छिपाने का एक त्वरित तरीका होगा।

add_action('admin_head', 'wpds_custom_admin_post_css');
function wpds_custom_admin_post_css() {

    global $post_type;

    if ($post_type == 'post_type') {
        echo "<style>#edit-slug-box {display:none;}</style>";
    }
}

यह निश्चित रूप से ऐसा करने का एक तरीका है। लेकिन मैं एडमिन फिल्टर या कुछ और के लिए सोच रहा था। लेकिन यह काम करता है और आपको धन्यवाद देता है।
सचिनगुटे

1

आप एक छोटा जावास्क्रिप्ट कोड admin_footerहुक करने के लिए भी इस क्षेत्र को छिपा सकते हैं ।

<?php
add_action('admin_footer', function() {
  global $post_type;
  if ($post_type == 'your_custom_post_type') {
    echo '<script> document.getElementById("edit-slug-box").outerHTML = ""; </script>';
  }
});
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.