WordPressのテーマ開発で投稿ページにページャを実装するには、previous_post_link()・next_post_link()を使ってテーマ側でページャを実装する必要がありました。WordPress 4.1からは新しく投稿ページのページャを出せるテーマ関数が用意され簡単に実装ができるようになりました。そのテーマ関数について紹介します。
WordPress 4.1で用意されたテーマ関数は、the_post_navigation()とget_the_post_navigation()です。the_post_navigation()とget_the_post_navigation()の違いはページに出力するかしないかの違いしかありません。
the_post_navigation()
ページ出力する
get_the_post_navigation()
ページ出力しない
なので以下は、the_post_navigation()について書きますが、get_the_post_navigation()でも同じように使えます。
the_post_navigation()の仕様
the_post_navigation( $args );
引数 | 型 | 説明 | デフォルト | 必須 |
---|---|---|---|---|
$args | array | ページャに入れたい配列 | array() |
the_post_navigation()に必要な引数は$argsの1つですが、任意に指定することもできます。引数を指定するには配列である必要がありthe_post_navigation()に指定できる配列には以下の通りです。
キー | 型 | デフォルト | 説明 |
---|---|---|---|
prev_text | string | %title | 前の投稿に表示するリンクタイトル |
next_text | string | %title | 次の投稿に表示するリンクタイトル |
screen_reader_text | string | __(‘Post navigation’) |
the_post_navigation()の使い方
the_post_navigation()の使い方は以下の通りです。
the_post_navigation(array(
'prev_text' => 'prev : %title',
'next_text' => 'next : %title'
));
the_post_navigation()基本的に設定する部分が前後のリンクタイトルとスクリーンリーダー用のテキスト文言だけなので動きます。出力は以下のような形です。
<nav class="navigation post-navigation" role="navigation">
<h2 class="screen-reader-text">投稿ナビゲーション</h2>
<div class="nav-links">
<div class="nav-previous">
<a href="http://wordpress.local/archives/100" rel="prev">prev : リンク1</a>
</div>
<div class="nav-next">
<a href="http://wordpress.local/archives/200" rel="next">next : リンク2</a>
</div>
</div>
</nav>
まとめ
WordPress 4.1からthe_post_navigation()・get_the_post_navigation()で簡単にページャが実装できるようになりました。the_post_navigation()は、通常のページャに加えて、スクリーンリーダー用のHTMLも一緒に出力するので、display:noneで制御したり今までどおりテーマ側で実装する必要がありますが、簡単にページャができるというだけでも今後も使っていきたいテーマ関数です。