2013年2月2日
カテゴリ: WordPress
WordPressで前後の記事へのリンクを同じカテゴリだけにする
WordPressの記事ページ(single.php)が表示されたとき、「次の記事」「前の記事」へのリンクを投稿のしたにつけてるんだけど、これがカテゴリをまたがって表示されてしまう。
WEBサイトによってはコンテンツごとにカテゴリを設けてきっちり管理したいので、「次の記事へ」をクリックしたら他のカテゴリの記事に飛んでしまうのはどうもよろしくない。
そこで次の記事、前の記事へのリンクを同じカテゴリに絞る方法を紹介します。
今僕はこんな感じで記事の表示をさせているのですが、
<?php if(have_posts()): while(have_posts()): the_post(); ?> <?php get_template_part('content'); ?> <?php previous_post_link(); ?> <?php next_post_link(); ?> <?php endwhile; endif; ?>
previous_post_linkとnext_post_llinkの引き数を以下のように設定します。
<?php previous_post_link('« %link', '%title', TRUE, ''); ?> <?php next_post_link('%link »', '%title', TRUE, ''); ?>
第3引数をTRUEにすることで同じカテゴリのリンクだけが設定できるようです。
さらに下記のように第4引数を設定すると、特定のカテゴリへのリンクだけ除外できます。複数カテゴリを指定するときはandを使う。
<?php previous_post_link('« %link', '%title', TRUE, '1 and 2'); ?> <?php next_post_link('%link »', '%title', TRUE, '1 and 2'); ?>
詳しくはWordPress Codexをご参考下さい。
テンプレートタグ/previous post link