Este posibil să eliminăm editorul WYSIWYG pentru un anumit tip de postare personalizat?

16 nov. 2012, 18:03:20
Vizualizări: 30.9K
Voturi: 23

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?

0
Toate răspunsurile la întrebare 6
4
28
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');
}

adaugă acest cod în fișierul functions.php al temei tale

16 nov. 2012 18:09:49
Comentarii

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 Chip Bennett
16 nov. 2012 18:21:20

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

scottgemmell scottgemmell
16 nov. 2012 18:42:08

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 Chip Bennett
16 nov. 2012 18:58:01

Aceasta elimină ambii editori (cod & vizual), nu doar pe cel vizual - întrebarea era despre eliminarea WYSIWYG)

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

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;
});
11 dec. 2014 13:29:46
Comentarii

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 Jason
16 apr. 2018 09:13:01

Bună, sincer să fiu, nu știu, cunoștințele mele despre WP sunt puțin învechite, îmi pare rău. Singurul lucru pe care îl pot sugera este să cercetezi codul sursă al WP, să găsești ceva relevant, apoi să cauți pe duckduckgo/google documentație/exemple.

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

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

16 nov. 2012 18:20:36
Comentarii

acesta ar trebui să fie răspunsul acceptat deoarece aceasta este modalitatea mai rațională de a face acest lucru!

rafa226 rafa226
19 aug. 2021 11:53:10
1

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:

Plugin Custom Post Types UI - Opțiuni pentru înregistrarea tipului de postare

16 nov. 2012 19:01:31
Comentarii

Chiar dacă un alt răspuns a fost marcat ca răspunsul selectat, acesta este răspunsul corect. Nu este nevoie să rulezi un filtru pentru a elimina ceva pe care poți să-l excludi direct la declararea CPT-ului de la început.

butlerblog butlerblog
13 aug. 2017 21:56:41
0

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

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

Te rugăm să [editezi] răspunsul tău și să adaugi o explicație: de ce ar putea această soluție rezolva problema?

fuxia fuxia
11 mai 2017 15:04:32