Avez-vous déjà essayé de créer des métaboxes dans WordPress? C'est un gâchis, non seulement pour les débutants, mais même pour les développeurs WordPress avancés. Heureusement pour la communauté WordPress, la communauté elle-même peut proposer des solutions élégantes à ce type de problèmes. CMB2 est l'un d'entre eux.
Dans cette partie de la série "Boîte à outils du développeur WordPress intelligent", nous allons passer en revue CMB2, une bibliothèque complète pour le développement de métaboxes et de formulaires personnalisés dans WordPress..
Comme il ne s'agit pas d'un didacticiel sur la création de métabox personnalisés, je ne vais pas vous apprendre à le faire en utilisant les fonctionnalités de base, mais je vais vous donner quelques liens utiles. Au lieu de cela, je vais passer en revue la routine banale de celle-ci:
Création du metabox: Certes, cette partie est essentielle et même CMB2 utilise une méthode similaire: vous devez créer la métabox personnalisée à l'aide du add_meta_box ()
fonction… au sein d'une fonction qui s'accroche à la add_meta_boxes
action. Pas trop facile, pas trop difficile, mais entre les deux.
Créez les champs à afficher dans la metabox: Dans cette partie, vous devez créer une fonction distincte (à laquelle vous devez également vous référer dans add_meta_box ()
fonction) et y écrire du HTML vanille, comme div
le sable étiquette
le sable contribution
s, afin d'afficher vos champs de formulaire, qui ne fonctionnera que si vous liez le code HTML avec PHP compliqué. Les entrées de texte sont correctes, mais créer des listes déroulantes ou des cases à cocher? Préparez-vous à être confus. (Ne me démarrez même pas pour les téléchargements de fichiers et les sélecteurs de couleurs.) Oh, vous avez oublié d'utiliser wp_nonce_field ()
pour la sécurité? Dommage, votre code ne fonctionnera jamais.
Désinfectez et enregistrez les valeurs de champ: Ouais. Pour que le formulaire stocke les données, vous devez utiliser une autre fonction afin de vérifier un tas de choses, de les désinfecter et d'enregistrer les valeurs dans votre métabox personnalisée. Et vous devez accrocher cette fonction à la save_post
action. Soigné.
Si vous voulez le faire "à la base" et dépenser heures sur la création de deux métaboxes, eh bien, bon pour vous, prenez la grande route. Mais bien sûr, il pourrait arriver un moment où vous ne pourrez plus utiliser des frameworks d'aide tels que CMB2. Dans ce cas, vous pouvez vous reporter à ce didacticiel SitePoint de Narayan Prusty ou à cette série complète de didacticiels de Tom McFarlin sur Tuts + Code..
Et si je vous disais que vous pouvez créer des métaboxes personnalisés en créant une fonction qui s'accroche à une action et en utilisant des fonctions très intelligentes qui effectuent tout le travail difficile nécessaire pour créer le code HTML et lier le tout comme par magie? Et croyez-moi, je n'exagère pas un tout petit peu!
Avec l’aide de CMB2, vous serez en mesure de créer des métabox personnalisés en une fraction du temps que vous consacriez à le faire "de manière fondamentale"..
CMB2 se présente sous deux formes: dans la forme du plugin et dans la forme du framework. Si vous envisagez d'utiliser CMB2 dans des projets qui ne seront pas publiés pour une communauté, je vous suggère d'utiliser le plug-in, car la mise à jour du plug-in CMB2 serait beaucoup plus simple et vous n'aurez pas à inclure les fichiers. du moteur CMB2. Toutefois, si vous souhaitez diffuser votre projet dans une communauté, vous feriez mieux d'intégrer CMB2 dans le projet en téléchargeant les fichiers à partir de GitHub, en les plaçant dans le dossier de votre projet et en utilisant les lignes ci-dessous:
Bien sûr, gardez à l’esprit que vous devez éditer les lignes ci-dessus pour pointer vers CMB2 init.php
fichier.
Avant de créer notre première métabox, nous devons créer notre seule fonction qui sera connectée à la propre cmb2_init
action:
Après cela, créer la metabox est aussi simple que créer une nouvelle variable:
'test_metabox', 'title' => 'Test Metabox', 'object_types' => array ('page', 'post', 'customposttype'), // post type 'context' => 'normal', // ' normal ',' advanced 'ou' side "priority '=>' high ', //' high ',' core ',' default 'ou' low" show_names '=> true, // affiche les noms de champs à gauche' cmb_styles '=> false, // false pour désactiver la feuille de style CMB' closed '=> true, // conserve la métabox fermée par défaut)); ?>
Après avoir créé notre première métabox personnalisée, il est temps de la rendre utile en la renseignant avec les "champs" fournis par CMB2. Et le faire est aussi simple que d’exécuter une fonction avec la variable metabox que nous venons de créer:
add_field (array ('nom' => 'Titre du test', 'desc' => 'Ceci est une description du titre', 'type' => 'titre', 'id' => 'wiki_test_title')); // email input $ cmb-> add_field (array ('name' => 'E-mail de test du texte', 'id' => 'wiki_test_email', 'type' => 'text_email',)); // uploader un fichier $ cmb-> add_field (array ('name' => 'Test File', 'desc' => 'Télécharger une image ou entrer une URL.', 'id' => 'wiki_test_image', 'type' => 'fichier', // masque éventuellement la saisie de texte pour l'URL: 'options' => array ('url' => false,),)); // tu te souviens quand j'ai dit que faire un sélecteur de couleur serait très difficile quand on utilise des fonctions de base? $ cmb-> add_field (array ('name' => 'Test Color Picker', 'id' => 'wiki_test_colorpicker', 'type' => 'colorpicker', 'default' => '#ffffff',)); ?>
CMB2 fournit plus de 30 types de champs, y compris des entrées de texte standard, des éditeurs WYSIWYG, des sélecteurs de date, des sélecteurs de couleur, des programmes de téléchargement de fichiers et même des sélecteurs de taxonomie. Pour une liste complète des types de champs, consultez cette page Wiki de CMB2.
Créer des métabox personnalisés entièrement fonctionnels est génial, mais CMB2 ne s'arrête pas là. Il y a beaucoup de choses que vous pouvez faire avec CMB2:
montrer sur
filtrer et afficher ou masquer vos métaboxes.Pour en savoir plus sur les super pouvoirs de CMB2 comme ceux-ci, vous pouvez consulter quelques pages:
On ne peut nier que s'en tenir au cœur de WordPress lors de la création de choses n'est pas toujours aussi simple qu'il y paraît. Ainsi, utiliser des frameworks d'aide tels que CMB2 accélérera nos processus de développement. Et je pense que même si CMB2 est aussi génial qu’aujourd’hui, il reste encore beaucoup à faire (non seulement dans le domaine des métabox personnalisés, mais aussi dans d’autres directions), alors je garderais un œil sur cela. projet si j'étais vous.
Rendez-vous dans la prochaine partie où nous aborderons WP-CLI, un outil WordPress unique en son genre qui nous donne la possibilité de gérer nos installations WordPress via la ligne de commande..