Este posibil să eliminăm editorul WYSIWYG pentru un anumit tip de postare personalizat?
Nu vreau să folosesc editorul WYSIWYG în partea de sus a tipului meu de postare personalizat. Vreau să folosesc un câmp textarea personalizat pe care îl pot plasa în partea de jos a listei mele de câmpuri personalizate.
Este posibil acest lucru?

Notă: Aș recomanda să apelați remove_post_type_support()
în același callback în care apelați register_post_type()
, pentru a asigura o ordine corectă de execuție.

Nu văd register_post_type() în functions.php. Folosesc Custom Types UI în combinație cu AdvancedCustomFields.

Faptul că folosești Plugin-ul Custom Post Types UI este un detaliu destul de important pentru întrebarea ta. :) Plugin-ul expune parametrul supports
în interfața sa. Consultă aceste capturi de ecran.

Poți dezactiva efectiv editorul WYSIWYG, lăsând doar editorul de sursă HTML. Alege una dintre funcțiile de mai jos:
// dezactivează wyswyg pentru un tip de postare personalizat, folosind variabila globală $post
add_filter('user_can_richedit', function( $default ){
global $post;
if( $post->post_type === 'product') return false;
return $default;
});
// dezactivează wyswyg pentru un tip de postare personalizat, folosind funcția get_post_type()
add_filter('user_can_richedit', function( $default ){
if( get_post_type() === 'product') return false;
return $default;
});

există vreo modalitate de a elimina doar editorul WYSIWYG din rezumat? Tema mea îl are activat și sunt sceptic în legătură cu unele dintre codurile lor, nu sunt sigur că pot să-l dezactivez. Am pus această întrebare ca o nouă întrebare aici: https://wordpress.stackexchange.com/questions/300877/disable-wysiwyg-rich-text-editor-only-on-post-excerpt

Alternativ, poți gestiona suportul pentru editorul de postări direct în apelul tău register_post_type()
, prin parametrul 'supports'
din array-ul $args
.
Valoarea implicită este: 'supports' => array( 'title', 'editor' )
.
O poți modifica după nevoie; de exemplu: 'supports' => array( 'title' )
.

Re: acest comentariu:
Eu folosesc Custom Types UI împreună cu AdvancedCustomFields.
Plugin-ul Custom Post Types UI expune toți parametrii din tabloul $args
al funcției register_post_type()
în interfața sa.
În acest caz, trebuie doar să găsiți secțiunea Supports și să dezactivați/descărcați opțiunea Editor:

Voi încerca să ofer un răspuns mai complet:
Dacă doriți să eliminați complet editorul de conținut
Răspunsul lui @Oleg Butuzov este bun:
add_action('init', 'init_remove_support',100);
function init_remove_support(){
$post_type = 'tipul tău de postare';
remove_post_type_support( $post_type, 'editor');
}
Dacă doriți să dezactivați doar TinyMCE dar să păstrați bara de unelte HTML
Răspunsul lui @biziclop este bun:
add_filter('user_can_richedit', function( $default ){
global $post;
if( $post->post_type === 'produs') return false;
return $default;
});
În acest caz wp-content-editor-tools
este deja vizibil deoarece expand-editor.js inserează barele de unelte.
Dacă doriți să înlocuiți editorul TinyMCE cu un simplu textarea
Am găsit răspunsul aici.
function wpse_199918_wp_editor_settings( $settings, $editor_id ) {
if ( $editor_id === 'content' && get_current_screen()->post_type === 'tip_postare_personalizata' ) {
$settings['tinymce'] = false;
$settings['quicktags'] = false;
$settings['media_buttons'] = false;
}
return $settings;
}
add_filter( 'wp_editor_settings', 'wpse_199918_wp_editor_settings', 10, 2 );

O altă metodă, mai consistentă, pentru a dezactiva editorul WYSIWYG, lăsând doar editorul sursă html - este să interzici tinymce folosind filtrul "wp_editor_settings" pentru tipul tău personalizat de postare.
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' );
