เป็นไปได้ไหมที่จะลบ WYSIWYG สำหรับ Custom Post Type บางประเภท?


18

ฉันไม่ต้องการใช้ WYSIWYG ที่ด้านบนของ Custom Post Type ของฉัน ฉันต้องการใช้ textarea ฟิลด์ที่กำหนดเองที่ฉันสามารถวางที่ด้านล่างของรายการของฟิลด์ที่กำหนดเองของฉันแทน

เป็นไปได้ไหม

คำตอบ:


20
add_action('init', 'init_remove_support',100);
function init_remove_support(){
    $post_type = 'your post type';
    remove_post_type_support( $post_type, 'editor');
}

วางลงในธีมของคุณ


1
หมายเหตุ: ผมจะขอแนะนำให้โทรremove_post_type_support()ภายในโทรกลับเดียวกันกับที่คุณเรียกregister_post_type()เพื่อให้แน่ใจว่าการสั่งซื้อที่เหมาะสมของการดำเนินการ
Chip Bennett

ฉันไม่เห็น register_post_type () ใน functions.php ฉันกำลังใช้ UI ประเภทที่กำหนดเองในคำสั่งผสมกับ AdvancedCustomFields
scottgemmell

การที่คุณใช้ปลั๊กอิน UI ประเภทโพสต์ที่กำหนดเองเป็นรายละเอียดที่สำคัญสำหรับคำถามของคุณ :) ปลั๊กอินแสดงsupportsพารามิเตอร์ใน UI โปรดดูที่หน้าจอเหล่านี้
Chip Bennett

14

คุณสามารถปิดการใช้งานโปรแกรมแก้ไขแบบ WYSIWYG ได้โดยปล่อยเฉพาะตัวแก้ไขซอร์ส html เลือกฟังก์ชั่นด้านล่าง:

// disable wyswyg for custom post type, using the global $post
add_filter('user_can_richedit', function( $default ){
  global $post;
  if( $post->post_type === 'product')  return false;
  return $default;
});

// disable wyswyg for custom post type, using get_post_type() function
add_filter('user_can_richedit', function( $default ){
  if( get_post_type() === 'product')  return false;
  return $default;
});

มีวิธีการลบ WYSIWYG จากข้อความที่ตัดตอนมาเท่านั้นหรือไม่ ธีมของฉันเปิดใช้งานอยู่และฉันสงสัยเกี่ยวกับรหัสบางส่วนของฉันฉันไม่แน่ใจว่าฉันสามารถลบออกได้ ฉันถามคำถามนี้เป็นคำถามใหม่ที่นี่: wordpress.stackexchange.com/questions/300877/…
Jason

สวัสดีจริงๆฉันไม่รู้ความรู้ WP ของฉันค่อนข้างรุนแรงขอโทษ สิ่งเดียวที่ฉันสามารถแนะนำได้คือการขุดลงในซอร์สโค้ด WP ค้นหาสิ่งที่เกี่ยวข้องจากนั้น duckduckgo / google it สำหรับเอกสาร / ตัวอย่าง
user188421

9

หรือคุณสามารถจัดการการสนับสนุนหลังการแก้ไขโดยตรงในการregister_post_type()โทรของคุณผ่าน'supports'พารามิเตอร์ใน$argsอาร์เรย์

'supports' => array( 'title', 'editor' )ค่าเริ่มต้นคือ:

คุณสามารถเปลี่ยนเป็นอะไรก็ได้ที่คุณต้องการ ตัวอย่างเช่น: 'supports' => array( 'title' ).


6

เรื่องความคิดเห็นนี้:

ฉันกำลังใช้ UI ประเภทที่กำหนดเองในคำสั่งผสมกับ AdvancedCustomFields

กำหนดเองโพสต์ประเภท UI ปลั๊กอิน exposes ทั้งหมดของregister_post_type() $argsพารามิเตอร์อาร์เรย์ใน UI ของมัน

ในกรณีนี้คุณเพียงแค่ต้องค้นหาส่วนรองรับและปิดการใช้งาน / ยกเลิกการเลือกแก้ไข :

Custom UI Types Post Types - ลงทะเบียนตัวเลือก Post Type


แม้ว่าจะมีการตั้งคำตอบอื่นเป็นคำตอบที่เลือก แต่นี่เป็นคำตอบที่ถูกต้อง ไม่จำเป็นต้องเรียกใช้ตัวกรองเพื่อลบบางสิ่งที่คุณสามารถยกเว้นได้เมื่อประกาศ CPT เพื่อเริ่มต้นด้วย
butlerblog

-1

อีกวิธีที่สอดคล้องกันมากขึ้นในการปิดการใช้งานตัวแก้ไข WYSIWYG เหลือเพียงตัวแก้ไขซอร์ส html - คือการไม่อนุญาตให้ใช้งาน Tinymce โดยใช้ตัวกรอง "wp_editor_settings" สำหรับประเภทโพสต์ที่คุณกำหนดเอง

function my_post_type_editor_settings( $settings ) {

    global $post_type;

    if ( $post_type == 'my_post_type' ) {

        $settings[ 'tinymce' ] = false;
    }

    return $settings;
}

add_filter( 'wp_editor_settings', 'my_post_type_editor_settings' );

โปรด แก้ไขคำตอบของคุณและเพิ่มคำอธิบาย:เหตุใดจึงแก้ไขปัญหาได้
fuxia
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.