ประเภทโพสต์ที่กำหนดเอง: วิธีกำจัดบรรณาธิการ (-meta box)


9

ฉันกำลังถามว่าฉันจะกำจัดตัวแก้ไขบทความ (visual + html) ได้อย่างไร ฉันพยายามที่จะไม่ลงทะเบียนการสนับสนุนประเภทโพสต์และยังคงปรากฏอยู่ (การยกเลิกการลงทะเบียนทำงานได้ดีกับกล่องเมตาเริ่มต้นอื่น ๆ ในหน้าจอแก้ไขโพสต์) ฉันยังพยายามยกเลิกการลงทะเบียนด้วย remove_meta_box ซึ่งใช้งานไม่ได้ด้วย (ใช้ได้กับทุกอย่างอื่นยกเว้นเมตาบ็อกซ์ชื่อ) บางทีฉันอาจจะพลาดอะไรซักอย่าง ค้นหาเว็บแล้วและไม่พบสิ่งใดเลย ฉันหวังว่าบางคนสามารถบอกฉันได้ ขอบคุณ!

ps ฉันยินดีที่จะมีวิธีแก้ปัญหาสำหรับการปิดใช้งานฟิลด์ชื่อด้วยเช่นกัน แต่นั่นเป็นครั้งที่ 2 (ไม่ได้ลงทะเบียนกับงานประเภทโพสต์)

(รุ่น Wordpress คือ 3.0.4)

คำตอบ:


17

การให้อาร์เรย์ว่างเป็น 'สนับสนุน' ในการประกาศประเภทโพสต์ควรกำจัดตัวแก้ไขและชื่อเรื่องพร้อมกับช่องเริ่มต้นอื่น ๆ ในหน้าแก้ไขโพสต์

$supports = array ('');
    $args = array(
      'label' => 'people',
      'supports' => $supports,
      'hierarchical' => false,
      'public' => true,
      'rewrite' => true
         );

    register_post_type( 'people', $args);

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


ขอบคุณมาก ปัญหาของฉันคือฉันไม่สามารถกำหนดให้ทุกอย่างว่างเปล่า ฉันเขียนสามคลาสเพื่อเพิ่มความเร็วในการสร้างประเภทโพสต์ที่กำหนดเอง taxonomies และแท็กที่กำหนดเอง พวกเขาได้ค่าเริ่มต้น ในกรณีของประเภทโพสต์ที่กำหนดเองมันเป็นเพียงทุกอย่าง แต่ฉันต้องยกเลิกการลงทะเบียนกล่องสำหรับประเภทโพสต์ที่เฉพาะเจาะจง และสำหรับหนึ่งฉันต้องลงทะเบียนกล่องแก้ไขด้วย
kaiser

ฉันสนใจสิ่งที่คุณหมายถึงโดยการตั้งค่าทุกอย่างให้ว่างเปล่า? หากคุณต้องการกำจัดตัวแก้ไขอย่าใส่ตัวแก้ไขเข้าไปในอาร์เรย์ 'สนับสนุน' เมื่อคุณสร้างประเภทโพสต์ในชั้นเรียนของคุณ
Manny Fleurmond

2
@kaiser หากเป็นคลาสของคุณเองปัญหาคืออะไร ทำให้มันจัดการกับมันได้หรือไม่ ..
Rarst

@Rarst: เป็นเพียงฐานที่สร้างสิ่งต่อไปนี้: ลงทะเบียนประเภทโพสต์และ taxonomies จากอาร์เรย์และเสนอตัวกรองสำหรับ $ label และ $ args (ค่าเริ่มต้นและเฉพาะ) คลาสเงื่อนไขสร้างเงื่อนไขที่ไม่สามารถลบได้เท่านั้นที่อัปเดตและ asign จากอาร์เรย์ กล่อง Meta สามารถทำได้ง่ายโดยไม่ต้องเรียนและจะไม่มีเหตุผลที่ฉันจะรวมเข้าด้วยกัน ชั้นเรียนอยู่ที่นั่นเพียงเพื่อช่วยฉันประหยัดเวลาและระงับไม่ให้ลูกค้าลบข้อกำหนดที่ระบบต้องการ แต่ขอบคุณที่มอง ความช่วยเหลือของคุณได้รับการชื่นชมอย่างมาก (อีกครั้ง) :)
kaiser

2
@kaiser แล้วปัญหาเกี่ยวกับการตั้งค่าsupportsเป็นอาร์เรย์ว่างผ่านตัวกรองคืออะไร
Rarst

15

หากคุณไม่ผ่านการsupportsโต้แย้งการตั้งค่าเริ่มต้นของ'title', 'editor'จะถูกใช้ (โดยที่ "ไม่มีอะไร" คือสิ่งที่เป็นempty())

อย่างไรก็ตามเช่นเดียวกับที่คุณสามารถเพิ่มการสนับสนุนสำหรับบางสิ่งบางอย่างหลังจากการลงทะเบียนประเภทโพสต์ด้วยคุณสามารถลบการสนับสนุนสำหรับบางสิ่งบางอย่างโดยการเรียกadd_post_type_support( $post_type, $feature ) remove_post_type_support( $post_type, $feature )ดังนั้นการเรียกสิ่งนี้หลังจากลงทะเบียนประเภทโพสต์ของคุณควรลบเครื่องมือแก้ไข:

remove_post_type_support( 'my_post_type', 'editor' );

ฟังก์ชั่นเหล่านี้ใช้จัดการกับ$_wp_post_type_featuresตัวแปรโกลบอลแต่การทำเช่นนี้กับฟังก์ชั่น API ดีกว่าทำด้วยตัวคุณเอง


ลำพัง! ฉันคิดเสมอว่านี่เป็นเพียงการลบอดีต รูปขนาดย่อหรือ nav_menu ผ่านธีมลูก ขอบคุณมาก!
kaiser

1
โอ้ฉันคิดถึงสิ่งนั้น จุดดีผ่านอาร์เรย์ที่ว่างเปล่าจะประเมินที่ว่างเปล่า ... ผ่านค่าว่างอยู่เสมอเช่นระเบียบมันจึงเป็นเคาน์เตอร์ที่ได้รับการปฏิบัติเหมือนเป็นค่าเริ่มต้นแทนการอะไร :(
Rarst

1
@Rarst: ฉันคิดว่ามันจะใช้งานได้หากคุณส่งชื่อคุณลักษณะหลอกตา มันเป็นเพียงคีย์อาร์เรย์ดังนั้นจึงไม่สำคัญว่าข้อมูลดัมมี่จะถูกแทรก ฉันเคยใช้0.1แทน0พารามิเตอร์เพื่อผ่านการempty()ตรวจสอบ
ม.ค. Fabry

1
@ Jan Fabry ใช่แล้วมันไม่ใช่ครั้งแรกที่ฉันก้าวเข้ามาในempty()เหมือง ข้างต้น - ตอบโต้ได้ง่าย
Rarst

ฮึ่ม มันไม่ทำงานกับปุ่มดังนั้นฉันคิดว่า "ค่าดัมมี่" อาจกลายเป็น "เหมือง" อีกอันหนึ่งเมื่ออัพเกรดในภายหลัง (ลองค้นหาค่าที่ไม่ดี) อย่างไรก็ตาม: ขอบคุณมากสำหรับพวกคุณทั้งคู่! :) แก้ไข: จะสะดวกถ้าค่าไม่ได้อยู่ที่นั่น แต่เป็นคู่ของคีย์ / ค่า อดีต 'support' => array('thumbnail' => true, 'editor' => false);
kaiser

2

ฉันใช้ปลั๊กอิน Custom Post Type UI เพื่อสร้างประเภทโพสต์ที่กำหนดเอง ใช้ปลั๊กอินนี้คุณสามารถปิดการใช้งานโพสต์แก้ไขภายใต้ตัวเลือกขั้นสูง

จัดการประเภทโพสต์ -> ดูตัวเลือกขั้นสูง

นี่คือลิงค์ไปยังปลั๊กอิน: http://wordpress.org/extend/plugins/custom-post-type-ui/

PS - ช่วยให้คุณปิดการใช้งานฟิลด์ชื่อด้วย :)


ดังที่ได้กล่าวไว้ข้างต้นฉันเขียนสามคลาสดังนั้นจึงไม่สามารถเปลี่ยนเป็นปลั๊กอินได้ ฉันหมายความว่าฉันจะไม่พิจารณาใช้ปลั๊กอินด้วยซ้ำ โปรแกรมเสริมคือ (imo) สำหรับการพัฒนาหรือสิ่งที่เปลี่ยนแปลงได้ง่ายเช่นแบบฟอร์มความคิดเห็นและไม่ใช่เนื้อหาหลักเช่นประเภทโพสต์หรือ taxonomies ขอขอบคุณ!
ไกเซอร์

1
ปลั๊กอินที่จริงแล้วสามารถปรับแต่งอะไรก็ได้เกี่ยวกับ Wordpress รวมถึงประเภทโพสต์ที่กำหนดเอง ฉันกำลังสร้างปลั๊กอินในขณะนี้ที่สร้างประเภทโพสต์มากมายสารของพวกเขาและเขตข้อมูลที่กำหนดเองต่างๆ
Manny Fleurmond

@ Danny Fleurmond: ถ้าคุณจะแบ่งปันกรุณาส่งลิงค์มาให้ฉัน ฉันยังคงคิดเกี่ยวกับบางทีบางทีอาจจะเขียนกิจวัตรสำหรับเมตาบ็อกซ์ขั้นสูงในชั้นเรียนของฉันด้วย
kaiser

0

ลองใช้register_post_type (); ใน codex ภายใต้ข้อโต้แย้งลงส่วนเลื่อนจนกว่าคุณจะเห็นรองรับ

ตั้งแต่ 3.5 บูลีนfalseสามารถถูกส่งผ่านเป็นค่าแทนที่จะเป็นอาเรย์เพื่อป้องกันพฤติกรรมเริ่มต้น (หัวเรื่องและตัวแก้ไข)

หรือกำหนดประเภทโพสต์ที่กำหนดเองตามที่คุณต้องการโดยการเพิ่มค่าที่คุณต้องการตัวอย่างเช่น

'supports' => array(
    'title',
    'author',
    'thumbnail',
    'post-formats'
),

ตัวเลือกที่รองรับเหล่านี้ในอาเรย์ของฉันจะปรากฏในแบ็กเอนด์ WordPress ของฉัน


-2

นอกจากนี้คุณยังสามารถกำหนดรูปแบบสำหรับหน้าแก้ไขของผู้ดูแลระบบเพื่อซ่อนองค์ประกอบบางอย่างเช่นตัวแก้ไข ฯลฯ

function custom_colors() {
   echo '<style type="text/css">
            body.post-type-events #postdivrich {
            display: none;
            }
         </style>';
}

add_action('admin_head', 'custom_colors');

ขอบคุณสำหรับคำตอบของคุณ แต่สิ่งนี้จะทำให้ (a) ไม่สามารถถอดออกได้เนื่องจากไม่ได้ลงทะเบียนกับ Dependencies API และ (b) ทำให้สามารถเข้าถึงได้สำหรับผู้ที่รู้วิธีใช้เครื่องมือสำหรับนักพัฒนาเบราว์เซอร์
ไกเซอร์
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.