Maison > Tutoriel CMS > WordPresse > Ajout de méta-boîtes aux types de publication dans WordPress

Ajout de méta-boîtes aux types de publication dans WordPress

Jennifer Aniston
Libérer: 2025-02-10 10:34:09
original
690 Les gens l'ont consulté

Adding Meta Boxes to Post Types in WordPress

Les constructeurs ou développeurs de sites Web WordPress utilisent souvent des méta-boîtes. Cet article plongera dans l'association et l'intégration des métaboxes avec des types d'articles personnalisés, et comment utiliser les données enregistrées dans le frontal WordPress à l'aide de métaboxes.

Points de base

  • Utilisez la fonction add_meta_box() (montez à add_meta_boxes Action) pour ajouter des métaboxes à toute interface d'édition de type d'article. Cette fonction peut être utilisée pour ajouter des métaboxes à plusieurs types d'articles (tels que des articles, des pages et des types d'articles personnalisés "livres"), ou à tous les types d'articles créés et futurs.
  • Le métabox peut être limité à un type d'article spécifique en ajoutant le nom du type d'article au crochet d'action add_meta_boxes. La fonction register_post_type() est utilisée pour personnaliser le type d'article, et son tableau de paramètres contient register_meta_box_cb, dont la valeur est la fonction de rappel appelée lors de la définition du métabox.
  • La fonction
  • global_notice_meta_box_callback contient les champs de forme du métabox. save_post Action accroche les données du processus enregistrées dans les zones de texte lors de l'enregistrement des articles en tant que brouillons ou publication. Ces données peuvent être utilisées efficacement en affichant les données entrées dans la méta-boîte avant d'enregistrer le contenu de l'article correspondant.

Ajouter le métabox à l'écran de type d'article

Narayan Prusty a couvert la plupart, sinon la totalité, les fonctions PHP, les paramètres et les crochets d'action qui créent des métaboxes.

Pour ajouter un métabox à n'importe quel écran d'édition de type d'article, vous pouvez utiliser la fonction add_meta_box() et la joindre à l'action add_meta_boxes.

Le code suivant ajoute le métabox à l'écran d'édition de l'article. Notez la fonction global_notice_meta_box_callback, qui est utilisée pour afficher les champs de formulaire dans le métabox. Nous le présenterons en détail plus tard.

function global_notice_meta_box() {
    add_meta_box(
        'global-notice',
        __( '全局公告', 'sitepoint' ),
        'global_notice_meta_box_callback',
        'post'
    );
}
add_action( 'add_meta_boxes', 'global_notice_meta_box' );
Copier après la connexion
Copier après la connexion

Pour ajouter un métabox à plusieurs écrans de type post (article, page et type de post personnalisé "livre"), créez un tableau de type d'article, une boucle via le tableau et ajoutez-le à ces articles en utilisant add_meta_box() en type.

function global_notice_meta_box() {
    $screens = array( 'post', 'page', 'book' );
    foreach ( $screens as $screen ) {
        add_meta_box(
            'global-notice',
            __( '全局公告', 'sitepoint' ),
            'global_notice_meta_box_callback',
            $screen
        );
    }
}
add_action( 'add_meta_boxes', 'global_notice_meta_box' );
Copier après la connexion
Copier après la connexion

Pour ajouter un métabox à tous les types d'articles créés et futurs, utilisez get_post_types() pour obtenir le tableau de type d'article et remplacer la valeur $screen ci-dessus.

function global_notice_meta_box() {
    $screens = get_post_types();
    foreach ( $screens as $screen ) {
        add_meta_box(
            'global-notice',
            __( '全局公告', 'sitepoint' ),
            'global_notice_meta_box_callback',
            $screen
        );
    }
}
add_action( 'add_meta_boxes', 'global_notice_meta_box' );
Copier après la connexion
Copier après la connexion

Metabox peut également être ajouté à tous les types de publication existants et nouveaux en omettant le troisième paramètre ($screen):

function global_notice_meta_box() {
    add_meta_box(
        'global-notice',
        __( '全局公告', 'sitepoint' ),
        'global_notice_meta_box_callback'
    );
}
add_action( 'add_meta_boxes', 'global_notice_meta_box' );
Copier après la connexion
Copier après la connexion

Vous pouvez également limiter la métabox à un type d'article spécifique en joignant le nom du type d'article (dans ce cas "livre") au add_meta_boxes Action Hook:

function global_notice_meta_box() {
    add_meta_box(
        'global-notice',
        __( '全局公告', 'sitepoint' ),
        'global_notice_meta_box_callback'
    );
}
add_action( 'add_meta_boxes_book', 'global_notice_meta_box' );
Copier après la connexion
Copier après la connexion
La fonction

register_post_type() est utilisée pour personnaliser le type d'article, et son tableau de paramètres contient register_meta_box_cb, et sa valeur est la fonction de rappel appelée lors de la définition du métabox.

Supposons que nous créons un type d'article personnalisé intitulé "Book" en utilisant le code suivant:

function global_notice_meta_box() {
    add_meta_box(
        'global-notice',
        __( '全局公告', 'sitepoint' ),
        'global_notice_meta_box_callback',
        'post'
    );
}
add_action( 'add_meta_boxes', 'global_notice_meta_box' );
Copier après la connexion
Copier après la connexion

L'ajout de la définition de la fonction global_notice_meta_box dans la fonction register_meta_box_cb php (la valeur de add_meta_box() ci-dessus) ajoutera le métabox à l'écran d'édition du type d'article personnalisé "livre".

Encore une fois, c'est notre exemple global_notice_meta_box Fonction.

function global_notice_meta_box() {
    $screens = array( 'post', 'page', 'book' );
    foreach ( $screens as $screen ) {
        add_meta_box(
            'global-notice',
            __( '全局公告', 'sitepoint' ),
            'global_notice_meta_box_callback',
            $screen
        );
    }
}
add_action( 'add_meta_boxes', 'global_notice_meta_box' );
Copier après la connexion
Copier après la connexion

Jusqu'à présent, nous avons appris diverses façons de s'inscrire ou d'ajouter des métaboxes dans WordPress. Nous devons également créer la fonction global_notice_meta_box_callback qui contiendra les champs de forme de notre métabox.

Ce qui suit est le code de la fonction global_notice_meta_box_callback qui contiendra un champ de zone de texte dans le métabox.

function global_notice_meta_box() {
    $screens = get_post_types();
    foreach ( $screens as $screen ) {
        add_meta_box(
            'global-notice',
            __( '全局公告', 'sitepoint' ),
            'global_notice_meta_box_callback',
            $screen
        );
    }
}
add_action( 'add_meta_boxes', 'global_notice_meta_box' );
Copier après la connexion
Copier après la connexion

Adding Meta Boxes to Post Types in WordPress save_post Action Hooks Le processus Les données du processus enregistrées dans les zones de texte lors de l'enregistrement des articles en tant que brouillons ou publication.

function global_notice_meta_box() {
    add_meta_box(
        'global-notice',
        __( '全局公告', 'sitepoint' ),
        'global_notice_meta_box_callback'
    );
}
add_action( 'add_meta_boxes', 'global_notice_meta_box' );
Copier après la connexion
Copier après la connexion

Pour utiliser les données entrées dans la zone de texte du Metabox, nous afficherons les données avant qu'elle ne soit affichée pour enregistrer le contenu de l'article correspondant.

function global_notice_meta_box() {
    add_meta_box(
        'global-notice',
        __( '全局公告', 'sitepoint' ),
        'global_notice_meta_box_callback'
    );
}
add_action( 'add_meta_boxes_book', 'global_notice_meta_box' );
Copier après la connexion
Copier après la connexion

Explication du code

Tout d'abord, nous créons une fonction global_notice_before_post et la fixons à un filtre the_content avec un paramètre $content qui contient le contenu de l'article.

À l'intérieur de la fonction, nous incluons la variable globale $post, qui contient l'objet WP_POST de l'article actuellement visualisé.

Récupérer les annonces globales enregistrées pour un article donné par get_post_meta et les enregistrer dans la variable $global_notice.

Ensuite, enveloppez l'annonce dans une div et enregistrez-la dans la variable $notice.

Enfin, connectez le $notice à l'annonce globale avec le $content avec le contenu de l'article réel.

Ce qui suit est une capture d'écran de l'article avec l'annonce globale devant le contenu de l'article.

Adding Meta Boxes to Post Types in WordPress

Résumé

Dans ce tutoriel, nous avons appris une variété de façons d'enregistrer les métaboxes dans les écrans de gestion WordPress et comment les limiter aux types d'articles.

Nous avons également examiné comment ajouter des champs de formulaire au métabox et comment enregistrer les données d'entrée lors de l'enregistrement ou de la publication d'un article.

Enfin, nous introduisons comment mettre les données entrées dans le métabox en pratique.

Dans les futurs articles, nous couvrirons comment ajouter des onglets d'aide au contexte à l'écran de gestion du type d'article.

Si vous avez des questions ou des suggestions, n'hésitez pas à leur poser dans les commentaires.

FAQS sur l'ajout de métaboxes aux types d'articles dans WordPress

  • Qu'est-ce qu'un métabox dans WordPress? Les métaboxes dans WordPress sont des boîtes dragables qui sont affichées dans l'interface d'administration. Ces cases sont utilisées pour afficher des champs d'entrée supplémentaires, permettant aux utilisateurs de personnaliser la fonctionnalité et la disposition de différents types d'articles. Ils peuvent être ajoutés à des articles, des pages et des types de publication personnalisés. Les métaboxes peuvent contenir différents types de champs, y compris le texte, les cases à cocher, les options de sélection, etc.

  • Comment ajouter des métaboxes aux types de messages personnalisés dans WordPress? Pour ajouter un métabox à un type de message personnalisé dans WordPress, vous devez utiliser la fonction add_meta_box(). Cette fonction vous permet de spécifier l'ID Metabox, le titre, la fonction de rappel, le type d'article, le contexte et la priorité. La fonction de rappel est utilisée pour sortir le contenu du métabox.

  • Puis-je ajouter plusieurs métaboxes à un seul type d'article? Oui. Chaque métabox devrait avoir un identifiant unique pour éviter les conflits. Vous pouvez utiliser la fonction add_meta_box() plusieurs fois et utiliser différents paramètres pour ajouter plusieurs métaboxes.

  • Comment enregistrer les données entrées dans le champ Metabox? Pour enregistrer les données entrées dans le champ Metabox, vous devez attacher une fonction à l'action save_post. Cette fonction doit vérifier les nonce, vérifier les autorisations de l'utilisateur actuel, puis utiliser les fonctions update_post_meta() ou add_post_meta() pour enregistrer les données Metabox dans la base de données.

  • Comment afficher les données Metabox sur l'avant? Pour afficher les données Metabox à l'avant, vous pouvez utiliser la fonction get_post_meta() dans la boucle. Cette fonction récupère les données Metabox à partir de la base de données et les renvoie sous forme de chaîne, que vous pouvez ensuite publier dans le fichier de modèle.

  • Puis-je ajouter des métaboxes à la page et à l'article? Oui. Lorsque vous utilisez la fonction add_meta_box(), vous pouvez spécifier le type d'article comme "page" pour ajouter un métabox à la page.

  • Comment supprimer les métaboxes des types d'articles? La fonction remove_meta_box() peut être utilisée. Cette fonction nécessite l'ID Metabox et le type d'article comme paramètres.

  • Puis-je personnaliser la position du métabox dans l'écran d'édition de l'article? Oui. Le paramètre add_meta_box() de la fonction context détermine la position du métabox. Les valeurs possibles sont "normales", "côté" et "avancées".

  • Puis-je ajouter un métabox à un type de message personnalisé créé par le plugin? Oui. Il vous suffit de connaître la limace pour le type d'article personnalisé et de l'utiliser comme paramètre add_meta_box() dans la fonction post_type.

  • Comment styliser les métaboxes et leurs champs? Vous pouvez utiliser CSS pour styliser les métaboxes et leurs champs. Le Metabox aura une classe "Postbox", où vous pouvez ajouter votre propre classe aux champs dans le Metabox. Vous pouvez ensuite localiser ces classes dans CSS pour appliquer des styles.

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal