วิธีซ่อนทุกอย่างใน PUBLISH metabox ยกเว้นปุ่มย้ายไปที่ถังขยะ & PUBLISH


10

ฉันมีประเภทโพสต์ที่กำหนดเอง (เรียกว่าผู้ติดต่อ) เนื่องจากโพสต์ประเภทนี้ไม่ทำงานเหมือนโพสต์ฉันไม่ต้องการแสดง SAVE DRAFT, PREVIEW, Status, Visibility หรือ Publish Date

ตัวเลือกเดียวที่ฉันต้องการแสดงคือปุ่ม PUBLISH & ย้ายไปที่ถังขยะ

มีวิธีซ่อนตัวเลือกอื่น ๆ เหล่านี้หรือไม่? ถ้าไม่ฉันจะสร้าง PUBLISH & ย้ายไปถังขยะใหม่ที่ฉันสามารถเพิ่มลงในเมตาโบท็อกใหม่ได้อย่างไร

คำตอบ:


14

คุณสามารถซ่อนตัวเลือกโดยใช้ CSS สิ่งนี้จะเพิ่มการแสดงผล: ไม่มีสไตล์ในการกระทำอื่น ๆ ที่คล้ายคลึงกันในหน้า post.php และ post-new.php มันจะตรวจสอบประเภทโพสต์เฉพาะเช่นกันเนื่องจากโพสต์ทุกประเภทใช้ไฟล์ทั้งสองนี้

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');

Brian - ขอบคุณสำหรับการตอบสนองที่รวดเร็ว ฉันลองใช้ฟังก์ชันโดยแทนที่ 'POST_TYPE' ด้วยชื่อประเภทโพสต์ที่กำหนดเอง (ผู้ติดต่อ) แต่ไม่มีสิ่งใดถูกลบเมื่อฉันไปแก้ไข / เพิ่มหน้าใหม่
katemerart

ตรวจสอบการแก้ไขล่าสุดของฉัน ควรแก้ไขปัญหา :)
Brian Fegter

นั่นยอดเยี่ยม - นี่เป็นการเปิดวิธีใหม่ในการลบสิ่งที่ฉันไม่ต้องการให้แสดง !! ขอบคุณมาก.
katemerart

ดีใจที่ได้ช่วยเหลือ :)
Brian Fegter

1
เพียงเพื่อชี้ให้เห็น: คุณสามารถลบระดับของการเยื้องสำหรับรหัสของคุณโดยเพียงทำif ( $post->post_type != $my_post_type ){ return; }ที่จุดเริ่มต้น ไม่จำเป็นต้องห่อรหัสของคุณไว้ในifคำสั่ง
Pete

1

ในตัวอย่างนี้คุณสามารถตั้งค่าได้อย่างง่ายดายบนประเภทโพสต์ที่คุณต้องการซ่อนตัวเลือกการเผยแพร่หนังตัวอย่างพวกเขาสำหรับการสร้างในกระถางประเภทชนิดและโพสต์ที่กำหนดเองประเภทpagecpt_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' );
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.