WordPressの投稿ページで前後の記事へのリンクを同じカテゴリ(タクソノミー)にする方法

WordPressでは、投稿記事の前後に「次の投稿」「前の投稿」といったページリンクする機能が用意されていますが、通常はカテゴリをまたいでリンク設定されます。

WordPress ロゴ

しかしブログの構成によっては、同じカテゴリ内の記事へリンクさせた方が親切な場合もあると思います。今回は、投稿記事の前後のリンクを同じカテゴリに絞る方法を紹介します。

WordPressの前後の記事へのリンクを同一カテゴリにする方法

WordPressで「次の投稿」「前の投稿」のページリンクを付けるには、通常下記のコードを使います。

<?php previous_post_link('&laquo; %link', '%title'); // 前の投稿へのリンク ?>
<?php next_post_link('%link &raquo;', '%title'); // 次の投稿へのリンク ?>

コードの括弧()の第1引数にリンクの前後に追加する文字をセットし(「%link」でaタグが挿入されます)、第2引数に表示するリンクのテキストをセットします(デフォルトは前の記事のタイトル)。

同じカテゴリに絞ったページリンクを付けるには、コードの括弧()の第3引数にtrueをセットします(デフォルト値はfalse)。

<?php previous_post_link('&laquo; %link', '%title', true , ''); ?>
<?php next_post_link('%link &raquo;', '%title', true , ''); ?>

表示させたくないカテゴリーがある場合は、第4引数に表示させたくない記事のカテゴリーIDをセットします。複数のカテゴリーを除外する場合はandで区切ります。

<?php previous_post_link('&laquo; %link', '%title', true , '1 and 2'); ?>
<?php next_post_link('%link &raquo;', '%title', true , '1 and 2'); ?>

さらにカスタム投稿で同一タクソノミー(カスタム分類)内だけでリンクを付けたい場合は、第5引数にタクソノミー名をセットすればOKです。

<?php previous_post_link('&laquo; %link', '%title', true , '' , 'タクソノミー名'); ?>
<?php next_post_link('%link &raquo;', '%title', true , '' , 'タクソノミー名'); ?>

タクソノミー名は、通常functions.phpにregister_taxonomy…と記述されているので確認してみましょう。

Related Posts