BLOG

投稿ページを分割

2019/10/02 [Wed] WEB

分割したページの最初と最後

ページを分割するところまでは良かったのですが、その後

  • アイキャッチ画像は最初のページだけに表示したい
  • タグは最後のページだけに表示したい

と考え、いろいろと試したのですが、どうにもうまくいきませんでした。

<?php if ( !is_paged() ): ?>などを使えば理屈の上では「1ページ目ではない」ということで、「最初のページだけに表示」が適用されると思ったのですが、どうも個別投稿ページでは、この条件分岐タグは使えないようです。

というわけで、こちらの記事を参考にさせていただきました。

// function.phpに記載
// 最後のページだけに表示

function is_post_page_end() {
  global $numpages;
  $paged = (get_query_var(‘page’)) ? get_query_var(‘page’) : 1;
  return $paged == $numpages;
}

// single.phpに記載
// 最後のページだけにタグを表示

<?php if ( is_post_page_end() ) : ?>
  <?php if (get_the_tags()): ?><?php the_tags( ”, ‘ / ‘ ); ?><?php endif; ?>
<?php endif; ?>

この理屈で、最初のページだけに表示するには?と考えて書いたのがこちら。(表記をシンプルにするため、タグはいろいろ省略しています)

// function.phpに記載
// 最初のページだけに表示

function is_post_page_first() {
  $paged = (get_query_var(‘page’)) ? get_query_var(‘page’) : 1;
  if( $paged == 1 ) {
  return $paged;
  }
}

// single.phpに記載
// 最初のページだけにアイキャッチ画像を表示

<?php if ( is_post_page_first() ) : ?>
  <?php if(has_post_thumbnail()): ?>
   <?php the_post_thumbnail(‘large’); ?>
  <?php endif; ?>
<?php endif; ?>

関数については全然詳しくないので、どこか変かもしれませんがご了承ください…。

<?php $paged = get_query_var( ‘paged’, 1 ); ?>

上記は「現在のページ送り番号を取得する」関数です。
なので、ページ番号を取得して「現在のページが1ページならば」関数を実行する、ということになっているはずです。

とりあえずこれで目的は果たせているので良しとしておきます。

関連記事