この記事は2015年4月22日に公開されたものです。この記事の内容は最新でない可能性がありますのでご注意ください。

【wordpress】トップページでページ送りをする時にはまったこと

wordpress ちなみに今回の記事は、はっきりした解決方法がありません。 今後wordpressが進化する過程で、ずいぶん変わるんだろうなとは思っています。 今回遭遇したのは、このブログのトップページだけページ送りがおかしくなったこと。アーカイブページ、シングルページは問題なし。 どんな風におかしいかというと、ページ送りそのものは表示されるんですが、1ページ目の内容しか表示されないという現象。 ページ送りでよくある「今どのページを見ているかwordpressが理解していない」ということだと思ったので、「$paged」の指定さえうまくやればそれでOKと思っていました。 しかし、そんなに甘くなかった。 このブログのトップページはカスタム投稿タイプを利用しています。アーカイブではなく、固定ページにカスタム投稿タイプの記事を表示させています。 ここでのキーワードは「トップページ(front-page.php)」「カスタム投稿」「ページ送り」です。 ここ最近言われている「query_posts」は使っちゃダメというのが多いですが、「pre_get_posts」はfront-page.phpを利用している場合は、条件分岐が現時点では効かないようです。。。 さらに固定ページにカスタム投稿の一覧を表示させる場合、「pre_get_posts」は使えないそうです。 これが分かるまで何時間費やしたか…ということで、「query_posts」を使って、カスタム投稿タイプの記事を表示させました。 さらに落とし穴。 フロントページを固定ページにするとpagedの情報が無効にされるとのこと。 functions.phpにコード書き込んで、やっとうまくいった! ちょっと対応するだけが、思わぬ事態に…。何回ページの表示を崩したか… 現時点での備忘録として、うまくいったコードを書いておきます。 201

front-page.phpのコード

<?php query_posts('post_type=カスタム投稿タイプ名&posts_per_page=表示させる記事数&paged='.$paged); ?>
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>

//ここにループ内の記述

<?php endwhile; else : ?>
<?php endif; ?>


<?php //ページネーション挿入?>
<?php get_template_part('pager'); ?>

pager.phpのコード

使い回しするコードなので、別のphpファイルとして、作ったものです。 上記コードの
<?php get_template_part('pager'); ?>
は、別のPHPファイルを読み込むという指定です。 別ファイルにするのが面倒なら、このpager.phpのコードと差し替えればOKです。
<?php
//Pagenation
if (function_exists("pagination")) {
pagination($additional_loop->max_num_pages);
}
?>

functions.phpのコード

このコードはフォーラムに掲載されていたものです。
add_action( 'parse_query', 'my_parse_query' );
function my_parse_query( $query ) {
  if ( ! isset( $query->query_vars['paged'] ) && isset( $query->query_vars['page'] ) )
    $query->query_vars['paged'] = $query->query_vars['page'];
}
参考:https://ja.forums.wordpress.org/topic/7549

functions.php内のページネーションのコード

先日の記事に掲載していますので、そちらをご覧ください。 ふと思ったんだけど、トップページにカスタム投稿タイプが無事に表示されてたんだから、わざわざ「query_posts」に変えなくてもよかったんじゃぁ…。 フォーラムに掲載されてたコードだけ実装すれば、うまくページ送りできたような気もする。。。 とりあえずの方法なんで、本当に困った時だけお試しください。

関連記事

wordpressでデフォルトのリンク機能が使えない?

アルファメールでwordpressを複数インストールする方法

【wordpress】カスタムフィールドの便利な使い方ークライアント向け02

【wordpress】カスタムフィールドの便利な使い方ークライアント向け01

【wordpress】別サイトで投稿記事を読み込む方法

【wordpress】ページネーション

【wordpress】記事のステータス毎の条件分岐

【wordpress】アップデート後、画像の「投稿に挿入」ボタンが押せない

【wordpress】固定ページに別の記事を挿入する方法

【wordpress】カスタム投稿タイプのカテゴリー関連の設定

【wordpress】ショートコード

【wordpress】よく使うfunctions.phpの設定02

他のブログ記事をチェック