È possibile rimuovere l'editor WYSIWYG per uno specifico Custom Post Type?

16 nov 2012, 18:03:20
Visualizzazioni: 30.9K
Voti: 23

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?

0
Tutte le risposte alla domanda 6
4
28
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');
}

inserisci questo codice nel file functions.php del tuo tema

16 nov 2012 18:09:49
Commenti

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.

Chip Bennett Chip Bennett
16 nov 2012 18:21:20

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

scottgemmell scottgemmell
16 nov 2012 18:42:08

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.

Chip Bennett Chip Bennett
16 nov 2012 18:58:01

Questo rimuove entrambi gli editor (codice & visivo), non solo quello visivo - la domanda riguardava la rimozione del WYSIWYG)

gordie gordie
4 feb 2022 17:46:06
2
22

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;
});
11 dic 2014 13:29:46
Commenti

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

Jason Jason
16 apr 2018 09:13:01

Ciao, onestamente non lo so, la mia conoscenza di WP è un po' arrugginita, mi dispiace. L'unica cosa che posso suggerire è di scavare nel codice sorgente di WP, trovare qualcosa di rilevante e poi cercarlo su duckduckgo/google per documentazione/esempi.

biziclop biziclop
17 apr 2018 09:32:45
1
12

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' ).

16 nov 2012 18:20:36
Commenti

questa dovrebbe essere la risposta accettata perché è il modo più razionale per farlo!

rafa226 rafa226
19 ago 2021 11:53:10
1

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:

Plugin Custom Post Types UI - Opzioni di registrazione del tipo di post

16 nov 2012 19:01:31
Commenti

Anche se un'altra risposta è stata impostata come risposta selezionata, questa è la risposta corretta. Non c'è bisogno di eseguire un filtro per rimuovere qualcosa che puoi semplicemente escludere quando dichiari il CPT inizialmente.

butlerblog butlerblog
13 ago 2017 21:56:41
0

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 );
3 set 2020 22:31:16
1

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' );
11 mag 2017 14:43:24
Commenti

Per favore [modifica] la tua risposta e aggiungi una spiegazione: perché questa soluzione potrebbe risolvere il problema?

fuxia fuxia
11 mag 2017 15:04:32