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.
Chip Bennett
Nu văd register_post_type() în functions.php. Folosesc Custom Types UI în combinație cu AdvancedCustomFields.
scottgemmell
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.
Chip Bennett
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
Jason
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' );