web-dev-qa-db-fra.com

Comment enregistrer des taxonomies d'enfants?

  1. Devrais-je inscrire le parent et l'enfant en tant que 'hierarchical' => true, s'il n'y a pas de petit-enfant?

  2. Si "Film" est la taxonomie de niveau supérieur, lorsque j'enregistre un enfant, est-ce aussi simple que: 'parent_item' => __( 'Parent Movie' )?

  3. Comment attribuer automatiquement une taxonomie enfant à un post? Jusqu'ici, j'ai compris comment attribuer une taxonomie à un article, mais est-ce que cela fonctionne bien avec la taxonomie des enfants? wp_set_object_terms($post_ID, $cat, 'category');

  4. Si j'interroge une taxonomie parentale, l'enfant sera-t-il inclus dans les résultats ou non?

  5. Si les taxonomies ne figurent pas dans la args de register_post_type, fonctionneront-elles encore?

1
Jenny

Trop pour un commentaire, je le laisse donc pour une réponse:

  1. Vous demandez beaucoup de questions qui devraient en réalité être différentes et ne pas être transférées dans une seule.
  2. (Ad 1.) Vous n'enregistrez pas de taxonomies "enfant" ou "parent". Vous ajoutez des termes (enfants) à une taxonomie hiérarchique via l'interface utilisateur WP Back-End. Vous pouvez le faire par programme avec wp_set_post_terms(); , wp_set_object_terms(); ou d’autres fonctions, mais c'est plus interne et difficile à gérer car vous devez vérifier chaque demande, qu'elle existe déjà ou non (ajoute DB-requêtes), donc ce n'est pas vraiment recommandé, car vous ne pouvez pas le faire avec l'activation du thème tant que WP ne propose pas de crochet ici.
  3. (Ad 4.) Vous pouvez interroger plusieurs taxonomies à la fois, comme indiqué dans l'article WP_Query du Codex . Cela interroge la taxonomie et tous les postes attribués. Vous pouvez également rechercher des termes appartenant à une taxonomie hiérarchique. Mais il n'y a pas de taxonomies "d'enfants". Seuls les termes "enfant". Vous pouvez ajouter ces termes enfants à vos arguments tax_query. Faire quelque chose comme if is child of peut être fait avec des fonctions telles que get_term_children(); . Si vous créez un lien vers une archive de termes, vous pouvez modifier la requête (recherche WPSE) afin d'inclure également les termes enfants.
  4. (Ad 3.) Comme indiqué dans d'autres réponses et commentaires à certaines de vos autres questions, vous devrez y ajouter des éléments tels que save_post et similaires. Vous trouverez ici suffisamment de réponses sur WPSE pour vous montrer comment. Tu es proche.
  5. (Ad 2.) Vous mélangez des étiquettes avec des arguments réels. Les arguments parent_item et parent_item_colon permettent de définir votre texte personnalisé et ne peuvent pas enregistrer de taxonomies "enfants". Ils servent uniquement à modifier le texte par défaut que vous voyez dans l'interface utilisateur d'administration.

Notes de bas de page:

  • Veuillez vous soucier de vos anciens Qs. Nous avons vraiment eu des problèmes pour réduire le nombre de questions ouvertes et sans réponse. Vous devriez revenir en arrière et essayer de travailler sur vos questions ouvertes qui ont des réponses.
  • Un formatage adéquat est très apprécié. Les répondeurs investissent leur temps et leurs conseils gratuitement pour vous aider à résoudre votre problème. Veuillez faire autant d’efforts pour demander et formuler un Q.
  • Soyez poli dans vos commentaires pour une réponse. Cela a) incitera le répondant à offrir une aide supplémentaire et b) il s’agit d’un format Q/A ouvert et votre Q est destiné à aider les autres utilisateurs à éviter de demander à nouveau le même Q et à la place, lisez simplement votre Q et les réponses correspondantes. Voyez votre comportement lorsque vous demandez et commentez quelque chose comme votre "carte de visite".
2
kaiser

Si vous enregistrez une taxonomie sous la forme hierarchical=>true, elle deviendra une catégorie et vous pourrez créer des relations parent-enfant au sein de cette taxonomie. Par contre, si vous enregistrez une taxonomie sous la forme hierarchical=>false, cela deviendra une étiquette, ce qui signifie aucune relation parent-enfant. Vous devrez peut-être obtenir l'identifiant d'un terme, utilisez la fonction term_exists , puis utilisez wp_insert_term pour insérer un nouveau terme, avec parent comme id que vous avez obtenu avec term_exists.

4
Rutwick Gangurde