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 );
引数説明デフォルト必須
$argsarrayページャに入れたい配列array()

the_post_navigation()に必要な引数は$argsの1つですが、任意に指定することもできます。引数を指定するには配列である必要がありthe_post_navigation()に指定できる配列には以下の通りです。

キーデフォルト説明
prev_textstring%title前の投稿に表示するリンクタイトル
next_textstring%title次の投稿に表示するリンクタイトル
screen_reader_textstring__(‘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で制御したり今までどおりテーマ側で実装する必要がありますが、簡単にページャができるというだけでも今後も使っていきたいテーマ関数です。