Because We Love Happy Coding

フリーライターからエンジニア × 講師。発信力だけあり余ってる感じ

WordPressで次の記事のカテゴリを取得したい

今日もまたコーディング。だって僕らはHappy Codingが大好きだから。

制作中のテーマでは、「次の記事へ」のリンクに、一緒に次の記事のカテゴリも表示しておきたい。

私が持っている初心者向けのテキストでは次の記事の取得に「next_posts_link」を利用していて、これはあっさり「次へ」のリンクを出力してくれるけれど、これだとカテゴリを取得することはできない。

あれこれ調べたらget_next_post()というメソッドで投稿オブジェクトを拾えることがわかった。

https://wpdocs.osdn.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/get_next_postwpdocs.osdn.jp

上記ページに載ってるサンプルコード。

<?php
$next_post = get_next_post();
if (    ): ?>
  <a href="<?php echo get_permalink( $next_post->ID ); ?>"><?php echo $next_post->post_title; ?></a>
<?php endif; ?>

ふむふむ。 じゃあ$next_post->IDのところを$next_post->category->category_nicenameとかやればスラッグで取り出せるかな?

試行錯誤の結果。

<div><?php 
    $next_post = get_next_post();
    if(!empty( $next_post )):
        $next_post_category=get_the_category($next_post->ID);//配列
        $next_post_category_slug = $next_post_category[0]->category_nicename;
?>
        <p>
            <?php echo $next_post_category_slug; ?>
        </p>
        <?php next_post_link('%link','%title'); ?>
        <?php endif; ?>
    </div>

こんな感じででけた。