Types de publication personnalisés: comment se débarrasser de l'éditeur (boîte -meta)

9

Je me demande comment je peux me débarrasser du post-éditeur (visuel + html). J'ai essayé de ne pas enregistrer la prise en charge du type de publication, et cela apparaît toujours (la désinscription fonctionne correctement avec toutes les autres métadonnées par défaut sur l'écran de modification de la publication). J'ai également essayé de le désenregistrer avec remove_meta_box, ce qui ne fonctionnait pas trop (fonctionne pour tout le reste sauf la meta box de titre). Peut-être que je manque quelque chose. Vous avez déjà effectué une recherche sur le Web et vous n'avez rien trouvé. J'espère que quelqu'un pourra me le dire. Merci!

Ps. Je serais heureux d'une sollicution pour désactiver le champ titre aussi, mais c'est le 2ème (ne pas l'enregistrer avec les travaux de type de message).

(La version Wordpress est 3.0.4.)

kaiser
la source

Réponses:

17

Donner un tableau vide aux «supports» dans la déclaration du type de publication devrait se débarrasser de l'éditeur et du titre, ainsi que de toutes les autres cases par défaut de la page d'édition de publication.

$supports = array ('');
    $args = array(
      'label' => 'people',
      'supports' => $supports,
      'hierarchical' => false,
      'public' => true,
      'rewrite' => true
         );

    register_post_type( 'people', $args);

Résultat: texte alternatif remplissez les «supports» avec les éléments que vous souhaitez afficher, tels que les rétroliens, les commentaires, etc. Assurez-vous de visiter ici si vous souhaitez également vous débarrasser des métaboxes de taxonomie hiérarchique.

Manny Fleurmond
la source
Merci jusqu'ici. Mon problème est que je ne peux pas tout mettre à vide. J'ai écrit trois classes pour accélérer la génération de types de messages personnalisés, de taxonomies et de balises personnalisées. Ils ont des défauts. Dans le cas des types de publication personnalisés, c'est tout. Mais je dois annuler l'enregistrement de certaines cases pour des types de publication spécifiques. Et pour l'un, je dois également désinscrire la boîte de l'éditeur.
kaiser
Je veux savoir ce que vous voulez dire en mettant tout à vide? Si vous voulez vous débarrasser de l'éditeur, ne mettez pas; éditeur 'dans le tableau' supports 'lorsque vous créez le type de publication dans votre classe.
Manny Fleurmond
2
@kaiser si c'est vos propres classes quel est le problème?
Leur
@Rarst: Ce n'est qu'une base qui fait les choses suivantes: enregistrer les types de messages et les taxonomies à partir d'un tableau et offrir un filtre pour $ labels et $ args (par défaut et spécifique). La classe terms génère uniquement des termes non supprimables qui sont mis à jour et attribués à partir d'un tableau. Les méta-boîtes peuvent être faciles sans classe et ne seraient pas logiques à intégrer. Les cours ne sont là que pour me faire gagner du temps et empêcher les clients de supprimer les termes dont le système a besoin. Mais merci d'avoir regardé. Votre aide est très appréciée (encore) :)
kaiser
2
@kaiser alors quel est le problème avec la configuration supportsd'un tableau vide via un filtre?
Rarst
15

Si vous ne passez rien pour l' supportsargument, les paramètres par défaut de 'title', 'editor'sont utilisés (où "rien" est tout ce qui est empty()).

Cependant, tout comme vous pouvez ajouter la prise en charge de quelque chose après avoir enregistré le type de publication avec add_post_type_support( $post_type, $feature ), vous pouvez supprimer la prise en charge de quelque chose en appelant remove_post_type_support( $post_type, $feature ). Donc, appeler cela après avoir enregistré votre type de publication devrait supprimer l'éditeur:

remove_post_type_support( 'my_post_type', 'editor' );

Ces fonctions ne font que manipuler la $_wp_post_type_featuresvariable globale , mais il est toujours préférable de le faire avec les fonctions API que de la manipuler vous-même.

Jan Fabry
la source
SOLLUTION! J'ai toujours pensé que c'était juste pour retirer mon ex. vignettes ou nav_menu via un thème enfant. Merci beaucoup!
kaiser
1
Aïe, j'ai raté ça. Bon point, passer un tableau vide équivaudra à vider ... Passer des valeurs vides est toujours un tel gâchis, il est contre-intuitif et est traité comme par défaut au lieu de rien . :(
Rarst
1
@Rarst: Je pense que cela fonctionnerait aussi si vous passiez un nom de fonction factice. C'est juste une clé de tableau, donc peu importe si des données factices sont insérées. J'ai utilisé une fois 0.1au lieu d' 0un paramètre pour passer le empty()contrôle.
Jan Fabry
1
@Jan Fabry oui, ce n'est pas la première fois que je marche sur le empty()mien. Comme ci-dessus - hautement contre-intuitif.
Rarst
Hm. Cela ne fonctionne pas avec les clés et donc je pense que les "valeurs factices" pourraient devenir une autre "mine" lors de la mise à niveau plus tard (essayez de trouver la mauvaise valeur). Quoi qu'il en soit: merci beaucoup à vous deux! :) Edit: serait pratique si les valeurs n'étaient pas seulement là, mais étaient des paires clé / valeur. Ex. 'support' => array('thumbnail' => true, 'editor' => false);
kaiser
2

J'utilise le plug-in d'interface utilisateur de type de publication personnalisé pour créer des types de publication personnalisés. En utilisant ce plugin, vous pouvez désactiver le post-éditeur sous les options avancées.

Gérer le type de message -> Afficher les options avancées

Voici un lien vers le plugin: http://wordpress.org/extend/plugins/custom-post-type-ui/

PS - Il vous permet également de désactiver le champ de titre :)

Carson
la source
Comme dit ci-dessus, j'ai écrit trois classes et ne peux donc pas passer à un plugin. Je veux dire que je n'envisagerais même pas d'utiliser un plugin de toute façon. Les plugins sont (imo) pour le développement ou des trucs interchangeables faciles comme les formulaires de commentaires et pas des trucs de base comme les types de publications ou les taxonomies. Merci quand même!
kaiser
1
En fait, les plugins sont capables de personnaliser à peu près n'importe quoi sur Wordpress, y compris les types de publication personnalisés. Je suis en train de créer un plugin qui crée de nombreux types de messages, leurs métaboxes et leurs différents champs personnalisés.
Manny Fleurmond
@Manny Fleurmond: Si vous allez partager, merci de me laisser un lien. Je pense toujours à peut-être à écrire une routine pour les méta-boîtes avancées dans mes cours aussi.
kaiser
0

Découvrez register_post_type (); dans le codex. Dans la section Arguments , faites défiler vers le bas jusqu'à ce que vous voyiez Supports .

À partir de 3.5, booléen falsepeut être passé en tant que valeur au lieu d'un tableau pour empêcher le comportement par défaut (titre et éditeur).

Ou personnalisez votre type de publication personnalisé comme vous le souhaitez en ajoutant les valeurs souhaitées, par exemple:

'supports' => array(
    'title',
    'author',
    'thumbnail',
    'post-formats'
),

Ces options prises en charge dans mon tableau apparaîtront dans mon backend wordpress.

Gothburz
la source
-2

Vous pouvez également définir le style de la page d'édition administrateur pour masquer les éléments sertain, tels que l'éditeur, etc.

function custom_colors() {
   echo '<style type="text/css">
            body.post-type-events #postdivrich {
            display: none;
            }
         </style>';
}

add_action('admin_head', 'custom_colors');
romapad
la source
Merci pour votre réponse, mais cela (a) le rendrait non amovible car il n'est pas enregistré auprès de l'API des dépendances et (b) le rendrait accessible aux personnes qui savent utiliser les outils de développement des navigateurs.
kaiser