ปรับแต่งหน้าจอโพสต์สำหรับประเภทโพสต์ที่กำหนดเอง?


15

เป็นวิธีที่ดีที่สุดในการปรับแต่งหน้าจอแก้ไขโพสต์ผู้ดูแลระบบสำหรับประเภทโพสต์ที่กำหนดเองที่เฉพาะเจาะจงคืออะไร?

ฉันได้ปรับแต่งให้มีขอบเขตในการสร้างประเภทโพสต์ที่กำหนดเอง - เพิ่มฟิลด์เพิ่มเติม ฯลฯ แต่ฉันต้องการลบองค์ประกอบหลายอย่างเช่น Permalinks โพสต์ตัวอย่างปิดใช้งานการแก้ไขอย่างรวดเร็ว ฯลฯ

คำตอบ:


16

คำถามเหล่านี้มีคำตอบที่นี่: ตั้งค่าตัวเลือกหน้าจอผู้ดูแลระบบเริ่มต้น & คำสั่ง Metabox

วิธีลบเมตาบอลิกของ Permalink:

function my_remove_meta_boxes() {
    remove_meta_box('slugdiv', 'my-post-type', 'core');
}
add_action( 'admin_menu', 'my_remove_meta_boxes' );

นอกจากนี้คุณจะต้องซ่อน # edit-slug-box ด้วย css หรือ javascript ดู: การโหลดสคริปต์ภายนอกในผู้ดูแลระบบ แต่สำหรับประเภทโพสต์เฉพาะเท่านั้น

หากต้องการปิดใช้งานการแก้ไขอย่างรวดเร็ว:

function my_remove_actions( $actions, $post ) {
    if( $post->post_type == 'my-post-type' ) {
        unset( $actions['inline hide-if-no-js'] );
    }
    return $actions;
}
add_filter( 'post_row_actions', 'my_remove_actions', 10, 2 );

หากต้องการเปลี่ยนลิงค์แสดงตัวอย่างคุณสามารถใช้ตัวกรอง 'preview_post_link' แต่จะใช้งานได้เฉพาะเมื่อโพสต์นั้นยังไม่ได้เผยแพร่ ดังนั้นวิธีแก้ปัญหาคือการลบกล่องส่งเมตาและเพิ่มของคุณเอง:

function my_replace_submit_meta_box() {
    remove_meta_box('submitdiv', 'my-post-type', 'core');
    add_meta_box('submitdiv', __('Publish'), 'custom_post_submit_meta_box', 'my-post-type', 'side', 'core');
}
add_action( 'admin_menu', 'my_replace_submit_meta_box' );

function custom_post_submit_meta_box() { // a modified version of post_submit_meta_box() (wp-admin/includes/meta-boxes.php, line 12)
    ...
}

ขอบคุณมาก. เคยค้นหาคำตอบสำหรับสิ่งนี้มานานแล้ว! นอกจากนี้ยังมีวิธีการเปลี่ยนตำแหน่งที่ปุ่มดูตัวอย่างในกล่องเผยแพร่ลิงก์หรือไม่ ฉันต้องการให้ลิงก์ไปยัง mysite.com/video?id='id โพสต์ 'หรือเปิดไลท์บ็อกซ์พร้อมเครื่องเล่นวิดีโอ
fxfuture

สวัสดีอีกครั้ง - ที่จริงฉันไม่สามารถรับรหัสที่คุณให้มาทำงานได้ Permalink metabox แค่ปิดการใช้งานการบันทึกการเปลี่ยนแปลงลิงก์ถาวรแทนที่จะซ่อนไว้และฉันไม่สามารถปิดการใช้งานลิงก์แก้ไขด่วนได้เลย ความคิดใด ๆ
fxfuture

ฉันแก้ไขคำตอบของฉัน ฉันเพิ่งทดสอบโฆษณาโค้ดแก้ไขด่วนที่ใช้งานได้ คุณกำลังพูดถึงลิงค์แก้ไขอย่างรวดเร็วด้านล่างชื่อโพสต์ใน: wp-admin / edit.php? post_type = sis_course ใช่ไหม
sorich87

เยี่ยมมากฉันจะดูข้อมูลเพิ่มเติมที่คุณโพสต์ ฉันสามารถซ่อนการแก้ไขอย่างรวดเร็วโดยการเปลี่ยน 'ลำดับชั้น' => false ในประเภทโพสต์ที่กำหนดเองของฉัน ดูเหมือนจะไม่สร้างความแตกต่างในขณะที่ฉันใช้ปลั๊กอินโพสต์ประเภทการสั่งซื้อเพื่อสั่งซื้ออย่างไรก็ตาม ขอบคุณ!
fxfuture

การแทนที่กล่องส่งเมตาทำงานอย่างสมบูรณ์แบบ! จริงๆแล้วมันจะต้องรวม $ post ระหว่างวงเล็บในฟังก์ชันของคุณ - เช่น custom_post_submit_meta_box ($ post) ดังนั้นนั่นคือการเรียงลำดับทั้งสาม :) มีการปรับแต่งเพิ่มเติมเล็กน้อยที่ฉันต้องการทำกับทั้งรายการโพสต์และหน้าจอแก้ไขโพสต์ - คุณรู้คู่มืออ้างอิงที่มีรายละเอียดวิธีการลบ / แทนที่องค์ประกอบต่าง ๆ ทั้งหมดหรือไม่
fxfuture
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.