web-dev-qa-db-fra.com

Comment puis-je obtenir l'URL de la catégorie auprès de get_the_category?

Ma boucle ci-dessous montre les 4 derniers messages de la même catégorie que le message en cours de visualisation. Son situé dans single.php.

J'essaie d'obtenir l'URL de cette même catégorie afin de pouvoir créer un lien vers category.php pour afficher tous les messages de cette même catégorie. Je pensais que saisir la catégorie slug fonctionnerait mais mon code ci-dessous ne génère rien:

<?php
global $post;
$categories = get_the_category();

    foreach ($categories as $category) :

       $exclude = get_the_ID();
       $posts = get_posts('posts_per_page=4&category='. $category->term_id);

        foreach($posts as $post) :
         if( $exclude != get_the_ID() ) { ?>

                <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>" class="post c-1"> Link to actual post</a>

    <?php } endforeach; ?>

<a href="<?php bloginfo('url'); ?>/categories/<?php echo $childcat->cat_slug; ?>" title="View all" class="btn border"><i class="i-right-double-arrow"></i> View all <?php echo $childcat->cat_slug; ?></a>
<?php  endforeach; wp_reset_postdata(); ?>
4
egr103

Utilisation:

get_category_link( $category_id );

Voir:

https://codex.wordpress.org/Function_Reference/get_category_link

Dans votre cas particulier:

<?php
global $post;
$categories = get_the_category();

    foreach ($categories as $category) :

       $exclude = get_the_ID();
       $posts = get_posts('posts_per_page=4&category='. $category->term_id);

        foreach($posts as $post) :
         if( $exclude != get_the_ID() ) { ?>

                <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>" class="post c-1"> Link to actual post</a>

    <?php } endforeach; ?>

<a href="<?php echo esc_url( get_category_link( $category->term_id ) ); ?>" title="View all" class="btn border"><i class="i-right-double-arrow"></i> View all <?php echo $category->name; ?></a>
<?php  endforeach; wp_reset_postdata(); ?>
5
userabuser