PUBLISH मेटाबॉक्स में सब कुछ कैसे छिपाएं इसके लिए Move to Trash & PUBLISH बटन को छोड़कर


10

मेरे पास एक कस्टम पोस्ट प्रकार (जिसे संपर्क कहा जाता है) है। चूंकि यह पोस्ट प्रकार एक पोस्ट की तरह काम नहीं कर रहा है, इसलिए मैं SAVE DRAFT, PREVIEW, स्थिति, दृश्यता या प्रकाशित तिथि नहीं दिखाना चाहता।

एकमात्र विकल्प जो मैं दिखाना चाहता हूं वह सार्वजनिक हैं और ट्रैश बटन पर जाएं।

क्या इन अन्य विकल्पों को छिपाने का कोई तरीका है? यदि नहीं, तो मैं एक नया PUBLISH & मूव कैसे बनाऊं जिसे मैं एक नए मेटाबोक्स में जोड़ सकूं?

जवाबों:


14

आप बस CSS का उपयोग करके विकल्प छिपा सकते हैं। यह एक प्रदर्शन को जोड़ देगा: पोस्ट.php और बाद के new.php पृष्ठों पर misc और मामूली प्रकाशन क्रियाओं के लिए कोई भी शैली नहीं। यह एक विशिष्ट पोस्ट प्रकार के साथ-साथ सभी पोस्ट प्रकार इन दो फ़ाइलों का उपयोग करता है।

function hide_publishing_actions(){
        $my_post_type = 'POST_TYPE';
        global $post;
        if($post->post_type == $my_post_type){
            echo '
                <style type="text/css">
                    #misc-publishing-actions,
                    #minor-publishing-actions{
                        display:none;
                    }
                </style>
            ';
        }
}
add_action('admin_head-post.php', 'hide_publishing_actions');
add_action('admin_head-post-new.php', 'hide_publishing_actions');

ब्रायन - त्वरित प्रतिक्रिया के लिए धन्यवाद। मैंने कस्टम पोस्ट टाइप (कॉन्टैक्ट्स) के नाम के साथ 'POST_TYPE' की जगह फंक्शन की कोशिश की, लेकिन एडिट / नए पेज जोड़ने पर कुछ भी नहीं निकलता।
केटामार्ट

मेरा नवीनतम संपादन देखें। यह समस्या को ठीक करना चाहिए। :)
ब्रायन फीगर

यह शानदार है - यह मेरे द्वारा दिखाए जाने वाले सामान को हटाने के लिए एक नया तरीका खोल दिया है !! बहुत बहुत धन्यवाद।
katemerart

खुशी में मदद करने के लिए :) :)
ब्रायन Fegter

1
बस इसे इंगित करने के लिए: आप if ( $post->post_type != $my_post_type ){ return; }शुरुआत में केवल करके अपने कोड के लिए इंडेंटेशन के स्तर को हटा सकते हैं । अपने कोड की संपूर्णता को विवरण में लपेटने की आवश्यकता नहीं है if
पीट

1

इस उदाहरण में आप आसानी से सेट कर सकते हैं कि आप किस पोस्ट प्रकार के प्रकाशन विकल्पों को छिपाना चाहते हैं, उदाहरण उन्हें बिल्ड-इन बर्तनों के प्रकार pageऔर कस्टम पोस्ट प्रकार के लिए छिपाता है cpt_portfolio

/**
 * Hides with CSS the publishing options for the types page and cpt_portfolio
 */
function wpse_36118_hide_minor_publishing() {
    $screen = get_current_screen();
    if( in_array( $screen->id, array( 'page', 'cpt_portfolio' ) ) ) {
        echo '<style>#minor-publishing { display: none; }</style>';
    }
}

// Hook to admin_head for the CSS to be applied earlier
add_action( 'admin_head', 'wpse_36118_hide_minor_publishing' );

महत्वपूर्ण अद्यतन

मैं आपको ड्राफ्ट के रूप में बचत पोस्ट से बचने के लिए "प्रकाशित" की एक पोस्ट की स्थिति को मजबूर करने का सुझाव दूंगा:

/**
 * Sets the post status to published
 */
function wpse_36118_force_published( $post ) {
    if( 'trash' !== $post[ 'post_status' ] ) { /* We still want to use the trash */
        if( in_array( $post[ 'post_type' ], array( 'page', 'cpt_portfolio' ) ) ) {
            $post['post_status'] = 'publish';
        }
        return $post;
    }
}

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