web-dev-qa-db-ja.com

Get_the_categoryからカテゴリのURLを取得する方法

以下の私のループは、現在閲覧中の投稿と同じカテゴリからの最新の4件の投稿を示しています。そのsingle.php内にあります。

同じカテゴリのURLを取得しようとしているので、category.phpにリンクして同じカテゴリのすべての投稿を表示できます。スラッグカテゴリをつかんでもうまくいくと思いましたが、以下のコードでは何も出力されません。

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

つかいます:

get_category_link( $category_id );

見る:

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

あなたの特定のケースでは:

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