Maison >Tutoriel CMS >WordPresse >Ajout de méta-boîtes personnalisées à l'interface d'administration WordPress
WordPress permet aux utilisateurs de créer des méta-boîtes personnalisées pour les publications, les pages et les types de publication personnalisés directement dans l'interface d'administration. Les API WordPress proposent également des options de personnalisation approfondies pour les méta-boîtes par défaut. Ce didacticiel vous guide à travers la création, l'enregistrement, la validation et la récupération des méta-données personnalisées, ainsi que la suppression des méta-boîtes par défaut.
Concepts clés:
Comprendre les méta-boîtes personnalisées:
Les méta-boîtes personnalisées fournissent un moyen d'ajouter des champs au-delà des options par défaut de WordPress. Les plugins et les thèmes les utilisent pour collecter une entrée utilisateur structurée. Ils peuvent également être ajoutés au tableau de bord, reflétant les fonctionnalités des widgets de tableau de bord WordPress (qui sont essentiellement des méta-boîtes elles-mêmes). Les méta-boîtes standard incluent l'éditeur, les champs personnalisés, l'image en vedette, les catégories et les sections de balises.
Meta-boîtes personnalisées par rapport aux champs personnalisés:
Les champs personnalisés stockent des paires de données de valeur clé. Les méta-boîtes offrent des types d'entrée plus polyvalents, y compris les sélecteurs de couleurs, les téléchargements de fichiers et les listes déroulantes.
Meta Data expliquée:
Meta Data représente les valeurs entrées dans les champs Meta Box personnalisés. WordPress stocke ces données sous forme de paires de valeurs de clé (clé de méta et valeur méta-valeur), où la clé Meta est le nom du champ et la valeur méta est les données entrées.
Création d'une méta-boîte:
La fonction add_meta_box
enregistre et affiche des méta-boîtes personnalisées. Le code suivant ajoute une méta-boîte personnalisée aux messages WordPress:
<code class="language-php">function custom_meta_box_markup() { // Content will be added here later } function add_custom_meta_box() { add_meta_box("demo-meta-box", "Custom Meta Box", "custom_meta_box_markup", "post", "side", "high", null); } add_action("add_meta_boxes", "add_custom_meta_box");</code>
add_meta_box
utilise sept arguments: ID (identifiant unique), titre (titre affiché), rappel (fonction pour afficher le contenu), écran (type de message), contexte (position), priorité (commande dans le contexte) et rappel arguments.
Ajout de champs à une méta-boîte personnalisée:
Ajoutons une entrée de texte, une liste déroulante et une case:
<code class="language-php">function custom_meta_box_markup($object) { wp_nonce_field(basename(__FILE__), "meta-box-nonce"); ?> <div> <label for="meta-box-text">Text:</label> <input name="meta-box-text" type="text" value="<?php echo esc_attr(get_post_meta($object->ID, " meta-box-text true>"> <br><br> <label for="meta-box-dropdown">Dropdown:</label> <select name="meta-box-dropdown"> <?php $option_values = array(1, 2, 3); foreach ($option_values as $value) { $selected = ($value == get_post_meta($object->ID, "meta-box-dropdown", true)) ? 'selected' : ''; echo "<option value='\"{$value}\"'>{$value}</option>"; } ?> </select> <br><br> <label for="meta-box-checkbox">Check Box:</label> <?php $checkbox_value = get_post_meta($object->ID, "meta-box-checkbox", true); $checked = ($checkbox_value == "true") ? 'checked' : ''; ?> <input name="meta-box-checkbox" type="checkbox" value="true" echo>> </div> <?php }</code>
Ce code comprend la vérification non -ce pour la sécurité et les utilisations get_post_meta
pour récupérer les données existantes.
Enregistrer les méta-données:
le save_post
Hook enregistre les données:
<code class="language-php">function custom_meta_box_markup() { // Content will be added here later } function add_custom_meta_box() { add_meta_box("demo-meta-box", "Custom Meta Box", "custom_meta_box_markup", "post", "side", "high", null); } add_action("add_meta_boxes", "add_custom_meta_box");</code>
Ce code vérifie les nonce, les autorisations utilisateur et les économies automatique. Surtout, il utilise sanitize_text_field
pour éviter les vulnérabilités de sécurité.
Suppression des méta-boîtes:
La fonction remove_meta_box
supprime les méta-boîtes. Par exemple, pour supprimer les champs personnalisés Meta Box:
<code class="language-php">function custom_meta_box_markup($object) { wp_nonce_field(basename(__FILE__), "meta-box-nonce"); ?> <div> <label for="meta-box-text">Text:</label> <input name="meta-box-text" type="text" value="<?php echo esc_attr(get_post_meta($object->ID, " meta-box-text true>"> <br><br> <label for="meta-box-dropdown">Dropdown:</label> <select name="meta-box-dropdown"> <?php $option_values = array(1, 2, 3); foreach ($option_values as $value) { $selected = ($value == get_post_meta($object->ID, "meta-box-dropdown", true)) ? 'selected' : ''; echo "<option value='\"{$value}\"'>{$value}</option>"; } ?> </select> <br><br> <label for="meta-box-checkbox">Check Box:</label> <?php $checkbox_value = get_post_meta($object->ID, "meta-box-checkbox", true); $checked = ($checkbox_value == "true") ? 'checked' : ''; ?> <input name="meta-box-checkbox" type="checkbox" value="true" echo>> </div> <?php }</code>
N'oubliez pas que le crochet utilisé (par exemple, do_meta_boxes
ou wp_dashboard_setup
) dépend du contexte.
Conclusion:
L'API Meta Box de WordPress est un outil puissant pour étendre les fonctionnalités. Comprendre ses nuances et hiérarchiser les meilleures pratiques de sécurité est la clé d'une implémentation efficace. Les exemples de code fournis illustrent les processus de base, mais n'oubliez pas de les adapter à vos besoins spécifiques et de désinfecter toujours les entrées des utilisateurs.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!