Maison >Tutoriel CMS >WordPresse >Introduction à WordPress Term Meta et WP_term

Introduction à WordPress Term Meta et WP_term

Jennifer Aniston
Jennifer Anistonoriginal
2025-02-15 09:45:11154parcourir

Introduction à WordPress Term Meta et WP_term

Les plats clés

  • Depuis WordPress 4.4, les termes sont désormais des objets, ce qui facilite l'ajout, supprimer et mettre à jour les métadonnées. Avant cela, l'épargne des métadonnées pour les taxonomies était un processus complexe qui nécessitait de sauvegarder les métadonnées à terme comme champ à l'intérieur du tableau WP_OPTIONS.
  • Pour travailler avec Term Meta, les fonctions add_term_meta, update_term_meta et delete_term_meta sont utilisées. Ces fonctions, combinées à de nouveaux éléments d'interface utilisateur, permettent de l'enregistrement et de la mise à jour de nouvelles métadonnées pour les termes.
  • Les métadonnées à terme peuvent être utilisées pour étendre les termes, offrant des fonctionnalités uniques. Les exemples incluent l'ajout d'une image de bannière en haut des termes ou la fourniture de métadonnées pour afficher conditionnellement les termes différemment, tels que le chargement d'un nouveau fichier de modèle en fonction du terme affiché.
  • La classe WP_Term dans WordPress est une représentation orientée objet d'un terme. Il fournit des méthodes pour récupérer et manipuler les données du terme, y compris le terme Meta. Cette classe peut être utilisée pour travailler avec Meta à terme en créant une instance de la classe pour un terme spécifique, puis en utilisant les méthodes fournies par la classe pour récupérer, ajouter, mettre à jour ou supprimer les méta-données du terme.

Dans WordPress, vous pouvez facilement enregistrer des métadonnées pour vos messages, pages et autres types de contenu personnalisés, mais économiser des métadonnées pour une utilisation avec vos taxonomies était un processus trop complexe (j'ai même écrit un article précédent à ce sujet ici!).

Pour que tout cela fonctionne, vous auriez besoin de sauvegarder vos métadonnées à terme en tant que champ à l'intérieur de votre table WP_OPTIONS pour chaque élément de données, ce qui signifie que vous pourriez avoir des centaines, voire des milliers de candidatures supplémentaires si vous aviez une quantité décente de quantité de quantité de quantité de décente de quantité de quantité de décente de quantité de quantité de décente de quantité de quantité de décente de quantité de quantité de décente de montant décent de termes ou simplement plusieurs taxonomies personnalisées.

Cependant, depuis WordPress 4.4 et au-delà, les termes sont désormais des objets, les mêmes que les publications, les pages et les types de contenu personnalisés. Ce changement rend beaucoup plus facile d'ajouter, de supprimer et de mettre à jour vos métadonnées.

La trame de fond avec un terme méta

La communauté fait pression pour un moyen facile de contrôler les métadonnées à terme depuis le retour dans WordPress 2.8. Ce fut un processus lent, mais les termes ont finalement été repensés à partir de zéro pour utiliser une structure de classe. Cela plus quelques changements différents dans WordPress 4.4 signifie que les termes d'une taxonomie (tels que des «balises», des «catégories» ou des coutumes) peuvent désormais avoir leur propre méta facilement attribuée.

Manipulation des métadonnées à l'ancienne

Avant WordPress 4.4, il n'y avait pas de moyen clair pour enregistrer facilement les métadonnées pour les éléments à terme, il s'agissait d'une limitation inhérente aux termes de la façon dont il a été construit. Si vous étendiez des taxonomies ou des termes, vous devrez enregistrer vos données directement en tant qu'option de site à l'aide de Update_Option. Ce n'était pas idéal (car il a encombré le tableau des options).

J'ai déjà écrit sur l'extension des taxonomies, mais ses bases étaient lorsque vous étiez prêt à enregistrer vos métadonnées, vous appelleriez une fonction qui ressemblait à ceci:

//saving new fields for category
function save_extra_taxonomy_fields($term_id){
    $term = get_term($term_id);
    $term_slug = $term->slug; 
    //collect category image id from posted values
    $term_category_image_id = isset($_POST['category_image_id']) ? sanitize_text_field($_POST['category_image_id']) : ''; 
    //update value and save it as an option
    update_option('category_image_id_' . $term_slug, $term_category_image_id);
}
add_action('create_category','save_extra_taxonomy_fields');

Dans l'exemple ci-dessus, nous exécutons la fonction attachée au crochet create_category (qui déclenche lorsque nous créons un nouveau terme de catégorie). Cela recherchera notre valeur et après désinfecture, l'enregistrera en option. Bien que cela fonctionne, ce n'est pas très joli.

Ajout, mise à jour et supprimer le terme Meta

Pour travailler avec Term Meta, vous utiliserez les fonctions add_term_meta, update_term_meta et delete_term_meta. Ces fonctions lorsqu'elles sont combinées avec de nouveaux éléments d'interface utilisateur vous permettront d'enregistrer et de mettre à jour de nouvelles métadonnées pour vos conditions.

ajoutant du terme meta

L'ajout de métadonnées pour un terme implique la fonction add_term_meta. Vous devez spécifier trois paramètres avec un quatrième en option.

  • $ term_id - ID du terme que vous souhaitez enregistrer ces métadonnées
  • $ meta_key - Nom clé des métadonnées. C'est ainsi que vous référerez les données
  • $ meta_value - Les données elle-même (n'oubliez pas de désinfecter)
  • $ unique (facultatif) - Si la clé de métadonnées doit être unique. Par défaut, cela est défini sur False et signifie que si une autre clé a le même nom, la fonction la remplacera. Définissez ceci sur True pour assurer l'unicité.

Par exemple, imaginez que pour chaque terme de notre catégorie taxonomie, nous voulons attribuer un nouveau morceau de métadonnées en fonction du nombre de messages attribués à cette catégorie. Avec WordPress 4.4, nous pouvons parcourir tous les termes et enregistrer ces nouvelles métadonnées (pour une utilisation plus tard dans notre thème ou nos plugins).

function add_featured_to_categories(){

    //get all terms from the category taxonomy
    $taxonomy_name = 'category';
    $term_args = array(
        'orderby'       => 'name',
        'hide_empty'    => false,
        'fields'        => 'ids'
    );

    $terms = get_terms($taxonomy_name, $term_args);

    if($terms){

        $term_key = 'term_size';
        $term_value = 'empty';
        $term_unique = true;

        //go through all terms and set the new term meta
        foreach($terms as $term_id){

            $term = get_term($term_id, $taxonomy_name);
            $term_count = $term->count; 

            //determine new meta value
            if($term_count > 10){
                $term_value = 'big';
            }else if($term_count >= 5 && $term_count < 10){
                $term_value = 'medium';
            }else if($term_count >= 1 && $term_count < 5){
                $term_value = 'small';
            }

            //save meta value
            add_term_meta($term_id, $term_key, $term_value, $term_unique);  
        }
    }
}
add_action('init', 'add_featured_to_categories');

Le terme de lecture méta

Nous pouvons lire Meta à terme enregistré en utilisant la fonction get_term_meta. Cette fonction fonctionne de manière similaire à la fonction get_post_meta qui est utilisée pour obtenir des métadonnées à partir de messages. Pour utiliser cette fonction pour spécifier un paramètre obligatoire, avec deux paramètres en option disponibles.

  • $ term_id - L'ID du terme pour récupérer les métadonnées de
  • $ clé (facultative) - une seule clé spécifiée que vous souhaitez retourner. Si ce n'est pas spécifié, toutes les métadonnées sont renvoyées.
  • $ Single (facultatif) - Si une seule valeur sera renvoyée ou une paire de touches ou de valeur. Par défaut est une seule valeur.

Regardons un autre scénario où vous pourriez trouver cela utile.

Considérons une situation dans laquelle nous avons déjà des méta-mesurées pour chacune de nos conditions dans notre taxonomie de catégorie. Ces données enregistrées contient l'URL vers une image qui doit être affichée lorsque nous affichons le terme. Nous voulons afficher cette image en tant que bannière en dessous de notre description ou titre de terme, mais au-dessus de notre liste des publications.

//given a term, collect its saved image to be displayed
function display_term_meta_image($term_id, $term_taxonomy){

    //get supplied term
    $term = get_term($term_id, $term_taxonomy); 
    if($term){

        $term_image_id = get_term_meta($term_id, 'term_image_id', true);
        if($term_image_id){
            //get the medium image size for display
            $term_image = wp_get_attachment_image_src($term_image_id, 'medium', false);
            echo '<img . $term_image[0] . '" title="' . $term->name . ' image"/>';
        }  
    }
}

Maintenant, dans notre fichier catégorie.php ou autre fichier de modèle de thème enfant, nous pouvons modifier la fonctionnalité où nos données de terme sont affichées.

Dans ma situation avec vingt-quatorze ans, je modifie le fichier catégorie.php et appelle notre nouvelle fonction juste après l'affichage des termes description info.

//get the current object (term)
$term_obj = get_queried_object();
//display meta data image for term
if(function_exists('display_term_meta_image')){
    display_term_meta_image($term_obj->term_id, $term_obj->taxonomy);
}

Cela affichera notre photo sous la description comme celle-ci:

Introduction à WordPress Term Meta et WP_term

Suppression du terme Meta

Nous pouvons supprimer les métadonnées à terme tout comme nous pour les poteaux. Lorsque nous utilisons la fonction delete_term_meta, nous devons fournir deux paramètres obligatoires avec une option troisième si nous avons besoin.

  • $ term_id - L'ID du terme sur lequel travailler.
  • $ meta_key - la méta-clé qui sera supprimée du terme.
  • $ meta_value (facultatif) - supprimez uniquement les métadonnées si la valeur correspond à cette valeur. Utilisez-le lorsque vous voulez que ces données soient supprimées lorsqu'il correspond à une valeur définie.

Regardons encore une fois un scénario dans lequel vous pourriez l'utiliser. Imaginez votre mi-chemin à travers un grand projet et vous avez déjà enregistré plusieurs métadonnées à chaque terme de catégorie. Vous avez constaté que certaines de ces données dont vous n'avez plus besoin, vous devriez donc probablement la vider afin qu'elle n'encombre pas votre base de données.

//saving new fields for category
function save_extra_taxonomy_fields($term_id){
    $term = get_term($term_id);
    $term_slug = $term->slug; 
    //collect category image id from posted values
    $term_category_image_id = isset($_POST['category_image_id']) ? sanitize_text_field($_POST['category_image_id']) : ''; 
    //update value and save it as an option
    update_option('category_image_id_' . $term_slug, $term_category_image_id);
}
add_action('create_category','save_extra_taxonomy_fields');

Cette fonction passera et supprimera toutes les métadonnées supplémentaires que nous n'avons pas spécifiées dans notre variable $ permed_term_keys, réduisant l'espace gaspillé dans la base de données (utile pour quand nous avons des dizaines d'entrées de métadonnées dont nous n'avons plus besoin).

Compatibilité arrière avec WordPress 4.3 et plus ancien

Si vous étiez vraiment désireux d'aller de l'avant avec ces nouvelles méta-fonctions mais que vous vouliez vous couvrir contre des versions plus anciennes, vous pourriez créer des fonctionnalités conditionnelles pour vous assurer que tout fonctionne.

function add_featured_to_categories(){

    //get all terms from the category taxonomy
    $taxonomy_name = 'category';
    $term_args = array(
        'orderby'       => 'name',
        'hide_empty'    => false,
        'fields'        => 'ids'
    );

    $terms = get_terms($taxonomy_name, $term_args);

    if($terms){

        $term_key = 'term_size';
        $term_value = 'empty';
        $term_unique = true;

        //go through all terms and set the new term meta
        foreach($terms as $term_id){

            $term = get_term($term_id, $taxonomy_name);
            $term_count = $term->count; 

            //determine new meta value
            if($term_count > 10){
                $term_value = 'big';
            }else if($term_count >= 5 && $term_count < 10){
                $term_value = 'medium';
            }else if($term_count >= 1 && $term_count < 5){
                $term_value = 'small';
            }

            //save meta value
            add_term_meta($term_id, $term_key, $term_value, $term_unique);  
        }
    }
}
add_action('init', 'add_featured_to_categories');

Nous commençons par appeler function_exists pour nous assurer que la nouvelle fonction add_term_meta est définie. Ce ne sera vrai que pour WordPress 4.4 et plus récent. Si nous avons un support, nous utilisons la fonction ADD_TERM_META simple pour attribuer des métadonnées à notre terme.

Si nous n'avons pas de support, nous saisissons le terme objet lui-même (par le terme adopté dans l'id de terme) et à partir de cela, nous extraissons les données $ Term_Taxonomy et les utilisons pour créer notre valeur de clé finale. Étant donné que nous enregistrons le tableau des options dont nous avons besoin pour nous assurer que la clé est unique, nous le faisons en ajoutant le nom de la taxonomie, le terme ID et enfin le terme clé en une variable. Nous devons nous assurer que la clé n’est pas supérieure à 64 caractères et si ce est le cas, baissez-le. Une fois que nous avons fait tout cela, nous pouvons appeler notre fonction add_option pour enregistrer notre valeur.

Comme vous pouvez le voir, cela devient un peu long, mais vous obtenez une flexibilité supplémentaire pour prendre en charge les versions WordPress plus anciennes et plus récentes.

envelopper le tout

L'utilisation de ces nouvelles méta-fonctions devrait vous permettre d'étendre plus facilement vos termes pour fournir des fonctionnalités uniques. Par exemple, vous pouvez ajouter une image de bannière en haut de vos conditions ou fournir des métadonnées afin que vous puissiez afficher conditionnellement vos termes différemment (comme le chargement d'un nouveau fichier de modèle en fonction du terme affiché).

Avec la flexibilité et la facilité des nouveaux méta-fonctions, vous pouvez commencer à implémenter cela dans vos nouveaux projets aujourd'hui!

Questions fréquemment posées (FAQ) sur WordPress Term Meta

Qu'est-ce que WordPress Term Meta?

WordPress Term Meta est une fonctionnalité qui vous permet de stocker des métadonnées personnalisées pour les termes de votre site WordPress. Ces métadonnées peuvent provenir de descriptions, d'images, de couleurs ou de toute autre information que vous souhaitez associer à un terme. Il s'agit d'un outil puissant qui peut améliorer la fonctionnalité et l'expérience utilisateur de votre site Web.

Comment ajouter Meta Term Meta dans WordPress?

Pour ajouter Meta à terme dans WordPress, vous pouvez utiliser l'add_term_meta ( ) fonction. Cette fonction prend trois paramètres requis: le terme ID, la clé Meta (le nom du champ Meta) et la valeur méta. En éventuellement, vous pouvez également spécifier si la touche Meta doit être unique.

Comment puis-je récupérer les méta-données du terme dans WordPress?

Vous pouvez récupérer des méta données de terme dans WordPress à l'aide de la fonction get_term_meta () . Cette fonction nécessite le terme ID et la clé du champ de méta que vous souhaitez récupérer. Il renvoie la valeur du champ Meta pour le terme spécifié.

Puis-je mettre à jour le terme Meta dans WordPress?

Oui, vous pouvez mettre à jour le terme META dans WordPress à l'aide de la fonction update_term_meta (). Cette fonction nécessite le terme ID, la clé Meta et la nouvelle valeur de méta. Si la clé Meta n'existe pas pour le terme, elle sera ajoutée.

Comment puis-je supprimer le terme Meta dans WordPress?

Vous pouvez supprimer le terme Meta dans WordPress à l'aide de la fonction delete_term_meta () . Cette fonction nécessite le terme ID et la clé Meta. Il supprime le champ de méta spécifié pour le terme donné.

Quelle est la classe WP_Term dans WordPress?

La classe WP_Term dans WordPress est une représentation orientée objet d'un terme. Il fournit des méthodes pour récupérer et manipuler les données de terme, y compris le terme méta.

Comment puis-je utiliser la classe WP_Term pour travailler avec un terme meta?

Vous pouvez utiliser la classe WP_Term pour travailler avec un terme méta En créant une instance de la classe pour un terme spécifique, puis en utilisant les méthodes fournies par la classe pour récupérer, ajouter, mettre à jour ou supprimer les méta-données du terme.

Quelles sont les utilisations pratiques du terme méta dans WordPress?

Le terme méta dans WordPress peut être utilisé à diverses fins, tels que l'ajout d'informations supplémentaires aux catégories ou aux balises, créant des champs personnalisés pour les termes, améliorant les fonctionnalités de recherche, et plus encore.

Puis-je utiliser des méta à terme avec des taxonomies personnalisées dans WordPress?

Oui, vous pouvez utiliser des méta à terme avec des taxonomies personnalisées dans WordPress. Le terme méta-fonctions fonctionne avec n'importe quelle taxonomie, y compris les personnaux.

Y a-t-il des plugins qui peuvent m'aider à gérer le terme Meta dans WordPress?

Oui, il existe plusieurs plugins disponibles qui peuvent vous aider Gérer le terme Meta dans WordPress. Ces plugins fournissent des interfaces conviviales pour l'ajout, la mise à jour et la suppression de la méta du terme, ce qui facilite la tâche pour ceux qui ne sont pas à l'aise avec le codage.

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:
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