広告

【WordPress】分割ページの2ページ目以降に「1ページ目から読む」リンクを表示する

WordPress

WordPressの改ページ(nextpage)を使用する際、2ページ目以降のページを表示時に1ページ目から読む旨のメッセージやリンクを表示する方法について解説します。

WordPressのマルチページャーについて

WordPressの投稿ではnextpageのタグを使って1ページを複数ページに改ページして表示することが可能です。

<!--nextpage-->

この際、テーマによってはページ下部などに切り替え用のリンクが表示されますが、検索エンジンからのリンクなどによって2ページ目以降に直接アクセスされた場合、ユーザーには2ページ目以降だということが伝わらずユーザビリティを低下させてしまう場合があります。

テーマによってはこれらの表示対応がなされているものもあるかと思いますが、この表示を直接カスタマイズするには、以下をテンプレートに記述します。

マルチページャーの2ページ目以降を表示したときだけメッセージを表示する

以下のコードをWordPressテンプレート内のメッセージを表示したい場所に記載します。

global $numpages;
if ( $numpages !== 1 ) { //複数ページの場合
  $paged = (get_query_var('page')) ? get_query_var('page') : 1;
  if ( $paged !== 1 ) { //2ページ目以降を表示している場合
    echo '<div>('.$paged.'/'.$numpages.')'.'<a href="'.get_the_permalink().'">1ページ目から読む</a></div>';
  }
}

マルチページャーによってページが分割されているか否かはグローバル変数の $numpages を使って確認します。

また、現在表示中のページ番号はGETクエリのpageパラメータを使って確認できます。

この2つの値を比較することで、「複数ページの2ページ目以降を表示」の判断が可能です。

コメント

  1. はじめまして、井上と申します。

    『以下のコードをWordPressテンプレート内のメッセージを表示したい場所に記載します。』と書かれていますが、どこにコードを貼りつければよいのでしょうか?

    いろいろな箇所に貼りつけて試しましたが、うまくできませんでした。

    たとえば、記事内のトップ(更新日や投稿日などのあたり)に表示させたい場合は、どこにコードを貼りつければ、表示されるようになりますでしょうか?

    お手数をおかけしますが、ご回答をいただければ幸いです。

    よろしくお願いいたします。

タイトルとURLをコピーしました