È possibile rimuovere l'editor WYSIWYG per uno specifico Custom Post Type?
Non voglio utilizzare l'editor WYSIWYG nella parte superiore del mio Custom Post Type. Vorrei invece utilizzare un campo textarea personalizzato che posso posizionare in fondo alla lista dei miei campi personalizzati.
È possibile farlo?

Nota: Consiglierei di chiamare remove_post_type_support()
all'interno dello stesso callback in cui chiami register_post_type()
, per garantire un ordine di esecuzione corretto.

Non vedo register_post_type() in functions.php. Sto usando Custom Types UI in combinazione con AdvancedCustomFields.

Il fatto che tu stia usando il Plugin Custom Post Types UI è un dettaglio piuttosto importante per la tua domanda. :) Il Plugin espone il parametro supports
nella sua interfaccia utente. Fai riferimento a questi screenshot.

Puoi effettivamente disabilitare l'editor WYSIWYG, lasciando solo l'editor del codice sorgente html. Scegli una delle funzioni qui sotto:
// disabilita wyswyg per un custom post type, utilizzando la variabile globale $post
add_filter('user_can_richedit', function( $default ){
global $post;
if( $post->post_type === 'product') return false;
return $default;
});
// disabilita wyswyg per un custom post type, utilizzando la funzione get_post_type()
add_filter('user_can_richedit', function( $default ){
if( get_post_type() === 'product') return false;
return $default;
});

Esiste un modo per rimuovere solo l'editor WYSIWYG dall'estratto? Il mio tema lo ha attivato e ho dei dubbi sul loro codice, non sono sicuro di poterlo rimuovere. Ho posto questa domanda come nuova qui: https://wordpress.stackexchange.com/questions/300877/disable-wysiwyg-rich-text-editor-only-on-post-excerpt

In alternativa, puoi gestire il supporto per l'editor di articoli direttamente nella tua chiamata register_post_type()
, tramite il parametro 'supports'
nell'array $args
.
Il valore predefinito è: 'supports' => array( 'title', 'editor' )
.
Puoi modificarlo in base alle tue esigenze; ad esempio: 'supports' => array( 'title' )
.

Risposta a questo commento:
Sto utilizzando Custom Types UI in combinazione con AdvancedCustomFields.
Il Plugin Custom Post Types UI espone tutti i parametri dell'array $args
di register_post_type()
nella sua interfaccia utente.
In questo caso, devi semplicemente trovare la sezione Supporta e disabilitare/deselezionare Editor:

Proverò a fornire una risposta più completa:
Se vuoi rimuovere completamente l'editor dei contenuti
La risposta di @Oleg Butuzov è valida:
add_action('init', 'init_remove_support',100);
function init_remove_support(){
$post_type = 'il tuo tipo di post';
remove_post_type_support( $post_type, 'editor');
}
Se vuoi disabilitare solo tinymce ma mantenere le toolbar HTML
La risposta di @biziclop è valida:
add_filter('user_can_richedit', function( $default ){
global $post;
if( $post->post_type === 'prodotto') return false;
return $default;
});
In questo caso wp-content-editor-tools
rimane visibile perché expand-editor.js inserisce le toolbar.
Se vuoi sostituire l'editor tinymce con un semplice textarea
Ho trovato la risposta qui.
function wpse_199918_wp_editor_settings( $settings, $editor_id ) {
if ( $editor_id === 'content' && get_current_screen()->post_type === 'custom_post_type' ) {
$settings['tinymce'] = false;
$settings['quicktags'] = false;
$settings['media_buttons'] = false;
}
return $settings;
}
add_filter( 'wp_editor_settings', 'wpse_199918_wp_editor_settings', 10, 2 );

Un altro modo, più consistente, per disabilitare l'editor WYSIWYG lasciando solo l'editor HTML sorgente è disattivare tinymce utilizzando il filtro "wp_editor_settings" per il tuo custom post type.
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' );
