個別投稿のページで表示するページ送り(前へ・次へ)のバリエーションになります。single.phpの他、single-{投稿タイプ名}.php や singular.php も対象になります。
パラメータを活用することで状況に応じた動作や表示が可能になります。
前後の記事へのリンクを表示:基本
next_post_link()
とprevious_post_link()
を使います。
サンプルではオプションのパラメータで<a>
の前後の文字列を無し、リンク文字列を “新しい記事”、”古い記事” と設定しています。
%link
の部分が<a>~~</a>
にあたるため、前後の文字列を指定するには '前の文字 %link 後の文字'
のように指定します。
<ul> <li><?php next_post_link( '%link', '新しい記事' ); ?></li> <li><?php previous_post_link( '%link', '古い記事' ); ?></li> </ul>
現在の投稿と同じカテゴリー内でページ送りを行う
3番目のパラメータにtrueを指定することで、現在表示中の投稿と同じ分類(タクソノミー)項目(ターム)の投稿に限定してページ送りを行います。
<ul> <li><?php next_post_link( '%link', '新しい記事', true ); ?></li> <li><?php previous_post_link( '%link', '古い記事', true ); ?></li> </ul>
任意のカテゴリーを除外してページ送りを行う
任意の項目ID(カテゴリーID等)を4番目のパラメータに指定して除外できます。
複数指定する場合はカンマ区切り、もしくは配列にします。
<ul> <li><?php next_post_link( '%link', '新しい記事', false, '1, 2' ); ?></li> <li><?php previous_post_link( '%link', '古い記事', false, '1, 2' ); ?></li> </ul>
ページ分割された投稿のページ送りを表示
投稿内に「ページ区切り」を設置することで1つの投稿を複数ページに分割することができますが、分割されたページを表示するためにはテンプレートファイルにwp_link_pages()
が用意されている必要があります。
オプションのパラメータを指定することで表示に関する整形が可能です。
<?php wp_link_pages() ?>
参考リンク
WordPress Codex – previous_post_link()
WordPress Codex – next_post_link()
WordPress Codex – wp_link_pages()