L'une des fonctionnalités essentielles fournies par WordPress pour étendre ses fonctionnalités est son API Meta Box. Ces méta-boîtes vous permettent d'ajouter facilement des données supplémentaires à votre contenu. Par exemple, le Tags post meta box vous permet de définir des tags pour votre message.
Dans cet article, nous allons construire un plugin SEO de base qui ajoute une méta-description, ainsi qu’un titre et une balise de description Open Graph à la tête
élément de pages WordPress. En faisant cela, nous allons également apprendre à créer des méta-boîtes personnalisées, à nettoyer les données fournies par l'utilisateur, à enregistrer les données dans un message ou une page, et à récupérer et récupérer les données enregistrées..
Étant donné que je ne vais pas expliquer chaque élément de l'utilisation des codes dans ce didacticiel, une connaissance de base des boîtes méta et des fonctions de PHP est supposée. Si vous n'êtes pas familier avec les bases, alors un bon début dans Comment créer des boîtes d'écriture / méta WordPress personnalisées.
Tout d'abord, nous devons décider où la boîte de méta doit apparaître.
Dans notre plugin, la meta box sera ajoutée dans le poster
et page
écran. Pour ce faire, une fonction contenant une variable stocke un tableau indiquant où afficher la méta-boîte et une pour chaque
boucle cette boucle à travers le tableau et ajoute la boîte méta à l'écran en utilisant le add_meta_box
une fonction.
Et enfin, la fonction est accrochée au add_meta_boxes
action.
fonction tes_mb_create () / ** * @array $ screens Écran sur lequel afficher la méta-boîte * @values post, page, tableau de bord, lien, pièce jointe, type_post_personnalisé * / $ screens = array ('post', 'page' ) foreach ($ screen as $ screen) add_meta_box ('tes-meta', 'Liste des moteurs de recherche', 'tes_mb_function', $ screen, 'normal', 'high'); add_action ('add_meta_boxes', 'tes_mb_create');
Alternativement, vous pouvez ajouter un double add_meta_box
fonction pour inclure la boîte méta à la fois à la page et à l’écran de la page, comme ceci:
fonction tes_mb_create () add_meta_box ('tes-meta', 'Liste des moteurs de recherche', 'tes_mb_function', 'post', 'normal', 'high'); add_meta_box ('tes-meta', 'Liste des moteurs de recherche', 'tes_mb_function', 'page', 'normal', 'haut'); add_action ('add_meta_boxes', 'tes_mb_create');
A partir du code ci-dessus, la fonction de rappel pour imprimer le code HTML de la section d'écran d'édition est référencée comme tes_mb_function
quel est le troisième argument passé à add_meta_box
une fonction.
Dans notre plugin, nous ne codons que deux champs de formulaire HTML pour gérer les données Title et Description..
function tes_mb_function ($ post) / / récupérer les valeurs de métadonnées si elles existent $ tes_meta_title = get_post_meta ($ post-> ID, '_tes_meta_title', true); $ tes_meta_description = get_post_meta ($ post-> ID, '_tes_meta_description', true); // Ajoute un champ nonce afin que nous puissions le vérifier ultérieurement lors de la validation de wp_nonce_field ('tes_inner_custom_box', 'tes_inner_custom_box_nonce'); écho '';
Titre Tag: Meta Description:
L'explication de la tes_mb_function
Le code ci-dessus est comme suit:
À ce stade, vous devriez voir la boîte méta dans l'écran de publication et de page..
Une méta-boîte n'est pas complète jusqu'à ce qu'elle puisse enregistrer les données dans la base de données. Le nom de la fonction pour gérer la sauvegarde des données sera tes_mb_save_data
. Son code est le suivant.
fonction tes_mb_save_data ($ post_id) / * * Nous devons vérifier que cela provient de notre écran et avec l’autorisation appropriée *, car save_post peut être déclenché à d’autres moments. * / // Vérifiez si notre nonce est défini. if (! isset ($ _POST ['tes_inner_custom_box_nonce']))) return $ post_id; $ nonce = $ _POST ['tes_inner_custom_box_nonce']; // Vérifiez que le nonce est valide. if (! wp_verify_nonce ($ nonce, 'tes_inner_custom_box')) return $ post_id; // S'il s'agit d'une sauvegarde automatique, notre formulaire n'a pas été soumis. Nous ne souhaitons donc rien faire. if (défini ('DOING_AUTOSAVE') && DOING_AUTOSAVE) return $ post_id; // Vérifier les autorisations de l'utilisateur. if ('page' == $ _POST ['post_type']) if (! current_user_can ('edit_page', $ post_id)) return $ post_id; else if (! current_user_can ('edit_post', $ post_id)) return $ post_id; / * OK, il est sûr pour nous de sauvegarder les données maintenant. * / // Si d'anciennes entrées existent, récupérez-les $ old_title = get_post_meta ($ post_id, '_tes_meta_title', true); $ old_description = get_post_meta ($ post_id, '_tes_meta_description', true); // Désinfecte l'entrée utilisateur. $ title = sanitize_text_field ($ _POST ['tes_meta_title']); $ description = sanitize_text_field ($ _POST ['tes_meta_description']); // Met à jour le champ méta dans la base de données. update_post_meta ($ post_id, '_tes_meta_title', $ title, $ old_title); update_post_meta ($ post_id, '_tes_meta_description', $ description, $ old_description); add_action ('save_post', 'tes_mb_save_data');
Examinons le code ci-dessus:
save_post
peuvent être déclenchés à d’autres moments et vérifier également que le nonce précédemment défini dans tes_mb_function
est valable.$ old_title
et $ old_description
variable. Nous faisons cela parce que le update_post_meta
la fonction qui enregistre les données dans la base de données nécessite éventuellement de vérifier une ancienne valeur avant de mettre à jour la ligne de la base de métadonnées avec les nouvelles valeurs.sanitize_text_field
fonction qui convertit le HTML en entité, supprime toutes les balises, supprime les sauts de ligne, les tabulations et les espaces, les octets de la bande.update_post_meta
.tes_mb_save_data
est accroché au save_post
action pour enregistrer les données de la boîte à méta lorsque la publication ou la page est mise à jour.N'oubliez pas que les données enregistrées doivent être utilisées pour ajouter un titre et une description Open Graph, ainsi que la balise meta description dans la liste. tête
élément de chaque page.
Pour ce faire, nous allons créer une fonction nommée tes_mb_display
qui contiendra les balises désirées et ensuite, accrochez-le dans wp_head
action.
fonction tes_mb_display () global $ post; // récupère les valeurs de métadonnées si elles existent $ tes_meta_title = get_post_meta ($ post-> ID, '_tes_meta_title', true); $ tes_meta_description = get_post_meta ($ post-> ID, '_tes_meta_description', true); écho ' '; add_action ('wp_head', 'tes_mb_display');
$ post
objet global.$ tes_meta_title
et $ tes_meta_description
variables, respectivement. tête
élément.wp_head
.Si vous avez ajouté et enregistré un titre et une description par rapport à un article ou à une page, l'affichage de cette source de page devrait révéler la présence d'une balise de titre et de description Open Graph à côté d'une méta-description utilisée par les moteurs de recherche..
Dans cet article, nous avons créé un plugin SEO de base qui ajoute une méta-description et des balises Open Graph utilisées par les réseaux sociaux des moteurs de recherche à la section d'en-tête de WordPress..
Nous avons appris à créer des méta-boîtes, à remplir des champs, à nettoyer les données avant de les enregistrer dans la base de données et à récupérer les données enregistrées pour les utiliser..
Affectation supplémentaire pour en savoir plus sur ce processus: étendre ce plugin et ajouter un champ de mot clé méta au formulaire de boîte méta et l'inclure également parmi les balises insérées dans l'en-tête WordPress.