WordPressで「前の投稿」と「次の投稿」へのリンクを出力する方法と使用例8パターン紹介 | WEMOWordPressの記事の最後によく表示されている「前の投稿へ」「次の投稿へ」を出力するテンプレートタグ、previous_post_link()とnext_post_link()について、使用方法を整理し、実際の出力パターンをいくつかメモ
WordPressの記事の最後によく表示されている「前の投稿へ」「次の投稿へ」を出力するテンプレートタグ、previous_post_link()
とnext_post_link()
について、使用方法を整理し、実際の出力パターンをいくつかメモしておきます。
目次
previous_post_link()とnext_post_link()の引数の意味を確認しておく
previous_post_link()
と next_post_link()
で指定できる引数を確認していきましょう。
_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パターンほど例を挙げてみます。
//デフォルトのまま表示 「« タイトル」と「タイトル »」
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, 'タクソノミー名');
以上です。
コピペで使用できると思うので、好きな形式のものを使ってみてください。
コメント