किसी को भी कस्टम पोस्ट प्रकार deregister करने का एक तरीका पता है?
के बराबर है register_post_type()
?
unregister_post_type
। Unregister_post_type
किसी को भी कस्टम पोस्ट प्रकार deregister करने का एक तरीका पता है?
के बराबर है register_post_type()
?
unregister_post_type
। Unregister_post_type
जवाबों:
वर्तमान में एक पोस्ट प्रकार की अपंजीकृत करने के लिए कोई फ़ंक्शन नहीं है, हालांकि प्रक्रिया काफी सरल है।
एंड्रयू नैसिन ने ट्रैक पर कुछ कोड प्रदान किए, जो यहां पाए गए और नीचे पोस्ट किए गए हैं।
if ( ! function_exists( 'unregister_post_type' ) ) :
function unregister_post_type( $post_type ) {
global $wp_post_types;
if ( isset( $wp_post_types[ $post_type ] ) ) {
unset( $wp_post_types[ $post_type ] );
return true;
}
return false;
}
endif;
एक अंतर्निहित पोस्ट प्रकार को अनइग्रिस्टर करने से वर्डप्रेस पर अज्ञात प्रभाव पड़ेगा, इसलिए कृपया अपने जोखिम पर ऐसा करें। एक कस्टम पोस्ट प्रकार की अपंजीकृत करना पूरी तरह से सुरक्षित होना चाहिए, लेकिन स्वाभाविक रूप से आपके इंस्टॉलेशन पर कोई सफाई नहीं करेगा (यानी पोस्ट प्रकार अनरजिस्टर्ड करना डेटाबेस से डेटा हटाने के बराबर नहीं है)।
मैं कुछ परिदृश्यों की कल्पना कर सकता हूं, जहां इसकी आवश्यकता हो सकती है, लेकिन अधिक समझदार दृष्टिकोण (जहां संभव हो), यह पोस्ट प्रकार को पहली जगह में पंजीकृत नहीं करना होगा यदि यह नहीं चाहता है।
register_post_type()
प्रत्येक पृष्ठ लोड ( init
) पर निष्पादित नहीं करते हैं, तो संभवतः पर्मलिंक संरचना है (इसे ताज़ा करें और यह चला जाएगा), और डेटाबेस में पोस्ट, जिसे आप निकाल सकते हैं करके DELETE FROM wp_posts WHERE post_type = '[your custom post type]'
।
वर्डप्रेस 4.5 के अनुसार ऐसा करने के लिए फ़ंक्शन है unregister_post_type
,। उदाहरण:-
function delete_post_type(){
unregister_post_type( 'blocks' );
}
add_action('init','delete_post_type');
unregister_post_type()
डेटाबेस से कुछ भी नहीं हटाया जाता है। यह केवल पोस्ट प्रकार को पंजीकृत होने से रोकता है।
यह मेरे लिए काम कर रहा था, जैसे Rarst ने अगर संभव हो तो remove_action () का उपयोग करते हुए कहा ।
add_action( 'after_setup_theme','remove_foundation_options', 100 );
function remove_foundation_options() {
remove_action( 'init', 'Orbit');
}
जैसा कि t31os ने नोट किया कि पोस्ट वेरिएबल को ग्लोबल वेरिएबल से हटाना आसान है।
लेकिन अगर आपका मतलब नॉन-कोर पोस्ट टाइप है तो बेहतर होगा कि लुकिंग कोड जो इसे रजिस्टर करता है और इसके साथ अनहूक remove_action()
(यदि यह सभ्य कोड है तो इसे सीधे चलाने के बजाय हुक किया जाना चाहिए)।
register_post_type()
एक ऐसा कार्य नहीं है जो खुद को हुक करने के लिए अच्छी तरह से उधार देता है। पोस्ट प्रकार को पंजीकृत करने का सामान्य तरीका यह है कि फ़ंक्शन को सीधे init पर झुकाए गए फ़ंक्शन को चलाने के लिए। उस क्रिया को हटाने से अवांछित प्रभाव हो सकते हैं, क्योंकि उस फ़ंक्शन के साथ अक्सर अन्य कार्यक्षमता को हटा दिया जाएगा।
वर्डप्रेस संस्करण 4.5 और इसके बाद के संस्करण वे पोस्ट प्रकार (unregister_post_type) को निकालने के लिए एक फ़ंक्शन प्रदान करते हैं। उदाहरण
function delete_post_type(){
unregister_post_type( 'jobs' );
}
add_action('init','delete_post_type');
यह निश्चित रूप से काम करेगा।