フォーラムへの返信

11件の返信を表示中 - 1 - 11件目 (全11件中)
  • トピック投稿者 _ygt

    (@_ygt)

    > get_template_part()ではなくPHPのinclude()で呼び出してみてはいかがでしょうか?

    ありがとうございます。試してみましたが、事象は変りませんでした…

    トピック投稿者 _ygt

    (@_ygt)

    >>ページのURLとhtmlを生成
    >htmlを作るのでは無く、単純にURLを表示する”pagination”機能が有るだけだと思います。

    失礼致しました、言葉足らずでした。ここでhtmlと言っているのは、ページのリンク部分のhtmlのことです。ページ全体のhtml生成はwp_pagenavi()をコールしているphp全体が行っています。

    >$pagedの確認がとれていないのならば、WP-PageNavを停止しカスタムされているqueryで次ページのリンクが有効かをご確認されたらどうでしょう。

    こちら行ってみましたが、変化ありませんでした。
    get_next_posts_link()を使用して、画面に「Next Page」というリンクを出力し、リンクURLがwp_pagenavi()で生成した2ページ目のURLと同じことを確認し、リンクをクリックしたところ、404になりました。

    ということは、やはりqueryに問題があるのでしょうか。

    トピック投稿者 _ygt

    (@_ygt)

    > $pagedに正しい(想定している)数値が入っているのは確認済みでしょうか?

    ここはまだ確認できていません。
    理由は、2ページ目の情報を取得しに行く前に、404エラーになっているためです。

    archive.phpの1行目にデバッグログを仕込んでみたところ、hogehoge/page/2/のURLにアクセスした場合、ログが出力されませんでした。したがって、archive.phpにアクセスする前に404エラーとなっていることになると思います。現在は、その点の問題解決を試みています。

    ちなみに、wp_pagenavi()って、ページのURLとhtmlを生成しているだけのように見えるのですが、その認識で間違っていないでしょうか。理解されている方がいらっしゃいましたら、教えて頂ければ幸いです。
    もしそうであれば、hogehoge/page/2を受け取ったwordpressが正しくテンプレートの出しわけをしていないことが今回の問題ということになると思います。

    トピック投稿者 _ygt

    (@_ygt)

    そうですね、そろそろその方向でも考えようかなと思い始めました。

    トピック投稿者 _ygt

    (@_ygt)

    以下をコメントアウトの上

    // $paged = get_query_var(‘page’) ? get_query_var(‘page’) : 1;

    管理画面の表示数を「8」「10」の二パターンで動作確認してみましたが、変化はありませんでした。

    ちなみに、当クエリは、独自に作成したloop_hogehoge.phpに実装されており、archive.phpからget_template_part()経由で呼び出されます。
    wp_pagenavi()の2ページ目をクリックした後、archive.phpへアクセスしようとしたタイミングで、404エラー判定されてしまう可能性はないでしょうか。

    トピック投稿者 _ygt

    (@_ygt)

    以下の通り修正して試してみましたが、変化はありませんでした。

    args = array(
    ‘post_type’ => ‘post’,
    ‘post_category’ => 3,
    ‘paged’ => $paged,
    ‘posts_per_page’ => 9,
    ……
    );
    query_posts($args);

    <?php if (have_posts()) : ?>
    <?php while (have_posts()): the_post(); ?>

    /* Do stuff */

    <?php endwhile; ?>

    wp_pagenavi();
    wp_reset_query();

    <?php endif; ?>

    上記に修正の上、$pagedに関しても以下の両パターンで試しましたが、変化ありませんでした。

    $paged = get_query_var(‘paged’) ? get_query_var(‘paged’) : 1;
    $paged = get_query_var(‘page’) ? get_query_var(‘page’) : 1;

    トピック投稿者 _ygt

    (@_ygt)

    > WordPressの管理画面の表示設定で、「1ページに表示する最大投稿数」を
    > query_postsで指定している件数(posts_per_page)よりも小さい数にしてみてください。

    「1ページに表示する最大投稿数」を1に変えてみましたが、変化はありませんでした。

    またここの設定を変えてしまうと、クエリ条件指定なしのデフォルトの状態でthe_post()している箇所の取得結果件数まで一緒に変わってしまう為、それを避けるために、グローバル$wp_queryを使用するquery_posts()ではなく、WP_Query()を使用して新しい実体を生成しています。この考え方が間違っているのでしょうか・・・

    トピック投稿者 _ygt

    (@_ygt)

    Top Level Categories Fix
    Custom Post Type Category Pagination Fix

    上記2プラグインをdeactiveになっていることを確認の上、削除しましたが、変化はありませんでした。

    また、パーマリンク設定の「変更を保存」をクリックした上で再確認してみましたが、こちらも変化がありませんでした。

    プラグインは現在以下のものが有効になっています。キャッシュ系のプラグインはない認識です。

    Akismet Version 2.5.7
    All In One SEO Pack Version 2.0.1
    Broken Link Checker Version 1.7.1
    Calendar Category Version 1.0.1
    Contact Form 7 Version 3.4.1
    Custom Field Template Version 2.1.5
    Google Analytics for WordPress Version 4.3.3
    Google XML Sitemaps Version 3.2.9
    Portfolio Post Type Version 0.4
    WP-PageNavi Version 2.83

    トピック投稿者 _ygt

    (@_ygt)

    $paged = get_query_var(‘page’) ? get_query_var(‘page’) : 1;
    でも試しましたが、変化はありませんでした。

    トピック投稿者 _ygt

    (@_ygt)

    はい、pagedは以下のように初期化しています。

    $paged = get_query_var(‘paged’) ? get_query_var(‘paged’) : 1;

    また、’post_category’という指定は有効のようで、他画面でget_postsしている個所でも同じ指定方法を取っているのですが、想定通りの挙動をしています。

    トピック投稿者 _ygt

    (@_ygt)

    jim912さん

    ありがとうございます。
    試しましたが、変化はありませんでした。

11件の返信を表示中 - 1 - 11件目 (全11件中)