MENU

ブログなど、投稿ページでよく表示されている「前の投稿へ」「次の投稿へ」をWordPressで表示するためのテンプレートタグについてメモ。

今回まとめていくのは、

  • previous_post_link()
  • next_post_link()

の2つです。引数の確認と、使用例をいくつかまとめていこうと思います。

目次

引数の確認

previous_post_link()next_post_link() は、同様の引数を持つことができ、以下のような形をとります。

previous_post_link( $format, $link, $in_same_term, $excluded_terms, $taxonomy );
next_post_link( $format, $link, $in_same_term, $excluded_terms, $taxonomy );

引数が5つもあります。ひとつずつ確認しましょう。

引数 説明
$format リンクの文字列の書式。リンクの前後に追加する文字を設定できます。「%link」と文字列内に記述すると次の「$link」部分に置き換えられます。
初期値: '« %link'
$link 表示するリンクのテキスト。「%title」と文字列内に記述すると投稿のタイトルが表示される。
初期値: '%title'
$in_same_term 現在の投稿と同じタクソノミー・ターム(例:カテゴリー)の投稿に限定するかどうか。'true' にすると現在のタクソノミー・タームがついた投稿だけを表示します。 初期値: false 注意: 現在の投稿に 2 つ以上のターム(例:親と子の両方)がついていた場合、どのタームがついた投稿へリンクするかは選べません。
$excluded_terms 表示させたくない投稿のターム ID(例:カテゴリー ID)。複数のタームを除外するには配列にするか、コンマで区切ってください(例:array(1, 5) または '1,5')。 初期値: ''
$taxonomy タクソノミー。これは $in_same_term が true の場合に有効です。(WordPress 3.8 で追加) 初期値: 'category'

理解すれば難しくないですが、ちょっとややこしいですね。

実際の例を見ていくのが早いと思うので、実際に見ていきましょう。

使用例

previous_post_link() next_post_link() を使用したページャーの出力例を8パターンほどメモしておきます。

<?php
//デフォルトのまま表示 「« タイトル」と「タイトル »」
previous_post_link();
next_post_link();

//デフォルトと表示は同じだが、「«」 と 「»」をaタグに含める
previous_post_link('%link', '« %title');
next_post_link('%link', '%title »');

//普通に「< 前の記事へ」と「次の投稿へ >」
previous_post_link('%link', '< 前の記事へ');
next_post_link('%link', '次の記事へ >');

//表示は同じだが、aタグの中身はタイトルで、その前に「前の記事 : 」と「»次の記事 : 」をつける
previous_post_link('前の記事 : %link', '%title');
next_post_link('次の記事 : %link', '%title');

//上の例と表示は同じで全てaタグの中に表示
previous_post_link('%link', '前の記事 : %title');
next_post_link('%link', '次の記事 : %title');

//同じカテゴリで「< タイトル」「タイトル >」
previous_post_link('%link', '< %title', true);
next_post_link('%link', '%title >', true);

//同じタグで「< タイトル」「タイトル >」
previous_post_link('%link', '< %title', true, '', 'post_tag');
next_post_link('%link', '%title >', true, '', 'post_tag');

//同じタクソノミーのみで、ID10の記事を除き、「< タイトル」「タイトル >」
previous_post_link('%link', '< %title', true, 10, 'タクソノミー名');
next_post_link('%link', '%title >', true, 10, 'タクソノミー名');
?>

以上です。いろんな使い方ができますね!

- Thank you for reading this to the end. -
TOPへ Top