Est-il possible de supprimer WYSIWYG pour un certain type de publication personnalisé?

18

Je ne veux pas utiliser le WYSIWYG en haut de mon type de message personnalisé. Je souhaite utiliser à la place une zone de texte de champ personnalisé que je peux placer en bas de ma liste de champs personnalisés.

Est-ce possible?

scottgemmell
la source

Réponses:

20
add_action('init', 'init_remove_support',100);
function init_remove_support(){
    $post_type = 'your post type';
    remove_post_type_support( $post_type, 'editor');
}

placez-le dans vos thèmes functions.php

Oleg Butuzov
la source
1
Remarque: je recommanderais d'appeler remove_post_type_support()à l'intérieur du même rappel que vous appelez register_post_type(), pour garantir un bon ordre d'exécution.
Chip Bennett
Je ne vois pas register_post_type () dans functions.php. J'utilise l'interface utilisateur de types personnalisés en combinaison avec AdvancedCustomFields.
scottgemmell
Le fait que vous utilisez le plug-in d'interface utilisateur des types de publication personnalisés est un détail assez important pour votre question. :) Le plugin expose le supportsparamètre dans son interface utilisateur. Reportez-vous à ces captures d'écran .
Chip Bennett
14

Vous pouvez réellement désactiver l'éditeur WYSIWYG, ne laissant que l'éditeur de source html. Choisissez une fonction ci-dessous:

// disable wyswyg for custom post type, using the global $post
add_filter('user_can_richedit', function( $default ){
  global $post;
  if( $post->post_type === 'product')  return false;
  return $default;
});

// disable wyswyg for custom post type, using get_post_type() function
add_filter('user_can_richedit', function( $default ){
  if( get_post_type() === 'product')  return false;
  return $default;
});
user188421
la source
existe-t-il un moyen de supprimer uniquement le WYSIWYG de l'extrait? Mon thème est activé, et je doute de certains de leur code, je ne suis pas sûr de pouvoir le supprimer. J'ai posé cette question comme une nouvelle question ici: wordpress.stackexchange.com/questions/300877/…
Jason
Salut, honnêtement, je ne sais pas, mes connaissances WP sont un peu rouillées, désolé. La seule chose que je peux suggérer est de fouiller dans le code source de WP, de trouver quelque chose de pertinent, puis de le duckduckgo / google pour la documentation / exemples.
user188421
9

Alternativement, vous pouvez gérer le support post-éditeur directement dans votre register_post_type()appel, via le 'supports'paramètre dans le $argstableau.

La valeur par défaut est: 'supports' => array( 'title', 'editor' ).

Vous pouvez le changer selon vos besoins; par exemple: 'supports' => array( 'title' ).

Chip Bennett
la source
6

Re: ce commentaire:

J'utilise l'interface utilisateur de types personnalisés en combinaison avec AdvancedCustomFields.

Le plug-register_post_type() $args in d'interface utilisateur des types de publication personnalisés expose tous les paramètres du tableau dans son interface utilisateur.

Dans ce cas, il vous suffit de trouver la section Supports et de désactiver / décocher l' éditeur :

Plugin d'interface utilisateur de types de publication personnalisés - Enregistrer les options de type de publication

Chip Bennett
la source
Même si une autre réponse a été définie comme réponse sélectionnée, c'est la bonne réponse. Il n'est pas nécessaire d'exécuter un filtre pour supprimer quelque chose que vous pouvez simplement exclure lors de la déclaration du CPT.
butlerblog
-1

Un autre moyen plus cohérent de désactiver l'éditeur WYSIWYG, ne laissant que l'éditeur de source html, consiste à interdire tinymce en utilisant le filtre "wp_editor_settings" pour votre type de publication personnalisé.

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' );
Валерия Олейник
la source
Veuillez modifier votre réponse et ajouter une explication: pourquoi cela pourrait-il résoudre le problème?
fuxia