web-dev-qa-db-fra.com

Obtenir des tags catégorie spécifique

J'utilise ce code pour obtenir les balises de la catégorie.

récupère toutes les balises de la catégorie

Je souhaite afficher dans la page de catégorie les balises spécifiques. J'ai 8 catégories et c'est mon code:

        <?php if (is_category('10')) { ?>
    <?php $args = array(
  'categories'        => '10'
);
$tags = get_category_tags($args);
$content .= "<ul>";
foreach ($tags as $tag) {
  $content .= "<li><a href=\"$tag->tag_link\">$tag->tag_name</a></li>";
}
$content .= "</ul>";
echo $content; ?> 

    <?php } elseif (is_category('4')) { ?>
<?php $args = array(
  'categories'        => '4'
);
$tags = get_category_tags($args);
$content .= "<ul>";
foreach ($tags as $tag) {
  $content .= "<li><a href=\"$tag->tag_link\">$tag->tag_name</a></li>";
}
$content .= "</ul>";
echo $content; ?> 
.....

Est-ce que pour chaque catégorie je pense n'est pas la meilleure façon, une idée?

2
Aina-Lluna Taylor

Si vous utilisez get_terms() , vous pouvez alors récupérer all termes pour une taxonomie donnée (ceci inclut la catégorie ainsi que le post-tag).

Pour obtenir la catégorie sur une page d’archive de catégorie, vous pouvez utiliser

get_category( get_query_var( 'cat' ) )

ce qui vous donnera une objectde la page d'archive de chat actuellement affichée.

Ainsi, la liste des termes réels sera disponible avec quelque chose comme:

$terms = get_terms(
     get_category( get_query_var( 'cat' ) )
    ,array(
         'fields'       => 'ids'
        ,'hierarchical' => true
        ,'hide_empty'   => false
        ,'pad_counts'   => true
     )
);

$term_links = array();
foreach ( $terms as $term )
{
    $link = get_term_link( $term, $taxonomy );

    ! is_wp_error( $link ) AND $term_links[] = sprintf(
             '<a href="%s" rel="tag">%s</a>'
            ,esc_url( $link )
            ,$term->name
    );
}
// Now do something clever with $term_links
// For example:
! is_empty( $terms ) AND printf(
     '<ul>%s</ul>'
    ,implode( "", $term_links )
);
2
kaiser