2015-12-08 1 views
0

Im actuellement affichant le terme de taxonomie personnalisé pour mon poste sur une page single-resources.php. Cependant j'en ai besoin pour créer un lien vers la page de la catégorie taxonomie et non le lien de la page.Wordpress - Terme de taxonomie unique à lier à la catégorie du terme

C'est ce que j'ai actuellement:

<?php 
    $term_list = wp_get_post_terms($post->ID, 'resourcecategory', array("fields" => "all")); 
    foreach($term_list as $term_single) { 
      echo '<a class="icon-hv-link" href="' . esc_url($term_link) . '"><i class="icon-left-open-big"></i><span>' . $term_single->name . '</span></a>'; 
    } 
?> 

que je faisais déjà ce qui ne fonctionne cependant son affichage chaque terme de taxonomie plutôt que celle spécifique au poste, il ne fonctionne pas :(

<?php $terms = get_terms('resourcecategory'); 
     if (! empty($terms) && ! is_wp_error($terms)){ 
      foreach ($terms as $term) { 
       echo '<a class="icon-hv-link" href="' . esc_url($term_link) . '"><i class="icon-left-open-big"></i><span>' . $term->name . '</span></a>'; 
      } 
     }?> 

Est-ce que quelqu'un a une idée sur someway de combiner les deux?

Répondre

1

pour toute autre personne ayant un problème avec ce que je réussi à obtenir ce que je cherchais avec le suivi Code ing:

<?php 
    $terms = get_the_terms($post->ID, 'resourcecategory'); 
    foreach($terms as $term) { 
     echo '<a class="icon-hv-link" href="' . get_term_link($term) . '"><i class="icon-left-open-big"></i><span>' . $term->name . '</span></a>'; 
    } 
    ?> 

Vous devez utiliser get_the_terms au lieu de get_terms. Comme mentionné dans les commentaires, ne pas utiliser wp_get_post_terms car cela provoque des appels inutiles à la base de données

+1

Utilisez 'get_the_terms()'. 'wp_get_post_terms()' n'est pas mis en cache, donc vous faites des appels DB inutiles. 'get_the_terms()' est mis en cache, donc vous pouvez l'appeler une centaine de fois et cela ne vous coûtera aucun appel db. ;-) –

+0

BTW +1 pour passer le terme objet à 'get_term_link()'. Ce coffre-fort sur les appels inutiles DB. Si vous ne passez que le terme ID, la base de données doit être interrogée pour obtenir le terme objet pour créer le lien. –

+1

Merci pour vos commentaires. J'ai mis à jour ma réponse :) – probablybest