サポート » 使い方全般 » トップページやアーカイブページで表示される記事数を変更したい

  • 解決済 goods.1971

    (@goods1971)


    WP3.4.1
    WP-PageNavi2.8.3 その他いろいろ使用。

    トップページの記事数を5に
    その他アーカイブ関係の記事数は20に
    したく、管理画面で記事数を20に設定し、アーカイブ関連記事数の表示を20にし、
    index.phpは下記のようにし、記事数の表示を5つにしました。
    <?php query_posts($query_string . ‘&posts_per_page=5’); ?>
    <?php if(have_posts()): while(have_posts()): the_post(); ?>
    これで、トップページの記事数は5つに。アーカイブ関連ページの記事数は20になりました。

    しかし、ページ送り(index.php)で14ページまでいくと、404エラーが表示されます。
    14ページ以降のページはすべて404エラーになるようです。

    ちなみに、
    管理画面の記事数が20の場合 → 14ページ以降404エラー
    管理画面の記事数が10の場合 → 28ページ以降404エラー
    管理画面の記事数が5の場合 → 56ページ以降404エラー????

    現在、54ページ分の記事しかないので、確認できませんが、
    おそらく、管理画面の記事数が5の場合、56ページ以降は404エラーになると思います。

    何か対処方法がありましたら、アドバイスをお願いいたします。
    ※トップページとアーカイブ関連の記事数を個別に設定できれば、別の方法でも構いません。

15件の返信を表示中 - 1 - 15件目 (全15件中)
  • 自分も$query_string使って記事数変更したのですが、いつのころかページ番号が連動しなくなってて、今はCustom Query Stringというプラグインを使用しています。

    アーカイブの種類ごとに記事数が設定できるシンプルなプラグインです。

    こちらのコードで試したらどうなりますか?

    <?php $paged = get_query_var('paged'); ?>
    <?php query_posts("posts_per_page=5&paged=$paged"); ?>
    <?php if(have_post()) : while (have_posts()) : the_post(); ?>

    トピック投稿者 goods.1971

    (@goods1971)

    訂正します。
    管理画面の記事数が20の場合 → 14ページ以降404エラー
    管理画面の記事数が20の場合 → 15ページ以降404エラー

    sz1320さん
    プラグインではなく、このようなものを追加することで、
    変更できるのがベストですが・・・・
    結果は変わらないようです。

    momizibafuさん
    Custom Query Stringをダウンロードできるサイトは分かりますか?

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

    モデレーター gatespace

    (@gatespace)

    こんにちは。横からスイマセン。

    そもそも、記事の総数はいくつなんでしょう?
    例えば、総記事数が11で1ページ当たりの表示件数を5にした場合、
    総ページ数は3になるので、仮に4ページ目以降に(手段はともかく)アクセスすると
    エラーになると思うのですが。

    ページ数 = 総記事数 ÷ 1ページ当たりの表示件数 (小数点以下切り上げ)

    トピック投稿者 goods.1971

    (@goods1971)

    gatespaceさん 
    いつもありがとうございます。
    総記事数は262です。

    262÷5=52.4 WP-PageNaviのページ表示数は54?
    変ですね。

    余談ですが、この状態からプラグインWP No Category BaseをOFFにすると、
    ページ送りで2ページ目から404エラーになります。
    また、月別アーカイブページもすべて404エラーになるんですよねぇ。

    使用プラグイン(すべて最新)
    Akismet、Breadcrumb NavXT、Google XML Sitemaps with Multisite support、Horizontal Calendar、Popular Posts、Post-Plugin Library、Similar Posts、WordPress Importer、wp-hatena 拡張版、WP-PageNavi、WP No Category Base

    WP No Category BaseをOFFにすると〜というお話を伺うと、
    パーマリンク設定のURLがおかしいんじゃないか?とかが気になります。

    ページ送り(index.php)の1ページ目と2ページ目の記事が同じだったりしないですよね?

    トピック投稿者 goods.1971

    (@goods1971)

    そう言われてみれば、パーマリンクの設定を変えてますね。
    カスタム構造で /%category%/%postname%.html です。

    sz1320さんからの指摘後、パーマリンク設定をデフォルトに戻し、
    再び、上記のように設定したところ、下記状態はすべて元に戻りました。なぜ!?

    余談ですが、この状態からプラグインWP No Category BaseをOFFにすると、
    ページ送りで2ページ目から404エラーになります。
    また、月別アーカイブページもすべて404エラーになるんですよねぇ。

    あとは、
    管理画面の記事数が20の場合 → 14ページ以降404エラー
    管理画面の記事数が10の場合 → 28ページ以降404エラー
    になる問題だけです。

    管理画面の記事数が20の場合 → 14ページ以降404エラー
    管理画面の記事数が10の場合 → 28ページ以降404エラー

    この場合、ページネーションのリンクに、14ページ移行のリンクが表示されるわけでしょうか??

    トピック投稿者 goods.1971

    (@goods1971)

    トップページでの表示はこのようになっております。
    1 2 3 4 5 6 7 8 9 10 … >> 53
    この状態で、>>などをクリックしていくと14ページ以降が404エラーとなります。

    ちなみに、14ページの時はこのような表示になっており
    先頭 << … 10 11 12 13 14 15 16 17 18 19 … >> 53
    この状態から、15 16 17 18 19 >> 53 をクリックするとすべて404エラーとなります。

    モデレーター gatespace

    (@gatespace)

    sz1320さんからの指摘後、パーマリンク設定をデフォルトに戻し、
    再び、上記のように設定したところ、下記状態はすべて元に戻りました。なぜ!?

    たぶん、リライトルールと.htaccsessの更新がうまくいっていなかったのが、
    正常に戻ったのではないでしょうか?

    あと、以下の状況で確認してみてください。

    ・カスタマイズしていないデフォルトのテーマに戻す。
    ・WP-PageNaviのページネーションのタグを入れる。

    要は「特定のページのみ○件」という条件を外し、管理画面で設定した件数で確認してみてください。

    トピック投稿者 goods.1971

    (@goods1971)

    毎度ありがとうございます。

    ・カスタマイズしていないデフォルトのテーマに戻す。
    ・WP-PageNaviのページネーションのタグを入れる。

    上記の通りやってみましたが、53ページまで問題なく見ることができました。
    尚、自作テーマでも「<?php query_posts($query_string . ‘&posts_per_page=5’); ?>」
    を削除すれば、53ページまですべて見れます。

    結局のとろこ、
    特定のページでは〇〇件という形で表示させるためにネットなどで調べると
    <?php query_posts($query_string . ‘&posts_per_page=5’); ?>を追記とありますが、
    実際にやると、私のようなドラブルが起こるようです。

    この状況を改善する方法がありましたら、教えてください。
    よろしくお願いいたします。

    モデレーター gatespace

    (@gatespace)

    <?php query_posts($query_string . ‘&posts_per_page=5’); ?>を追記とありますが、
    実際にやると、私のようなドラブルが起こるようです。

    ここの書き方に問題があります。
    以下の様な形になっていますか?

    query_posts( $query_string . '&posts_per_page=5' );
      while ( have_posts() ) : the_post(); // ループスタート
        /*  the_title(), the_permalink() 等使用可 */
      endwhile; //ループここまで
      /* ページネーションはここに入れる */
    wp_reset_query(); // 最後にリセット

    あと最近のおすすめは query_posts を使う事よりも、pre_get_posts フックとis_main_queryを使う方法です。
    http://ja.forums.wordpress.org/topic/11137?replies=4

    トピック投稿者 goods.1971

    (@goods1971)

    gatespaceさん

    どうもうまくいきません。デフォルトのテーマでも同じ結果です。

    そこで、「pre_get_posts フックとis_main_queryを使う方法」を
    参考にfunctions.phpを下記のようにしたところ、うまくいきました。

    //
    function category_display_five_articles( $wp_query ) {
     if (!is_admin()) { //管理画面以外で
       if ( $wp_query->is_main_query() && $wp_query->is_home() ) {
         $wp_query->set( 'posts_per_page', 5 ); // 表示件数は5件
        }
      }
    }
    add_action( 'pre_get_posts', 'category_display_five_articles' );

    正直、最初からこちらの方が教えていただければ、悩まずにすみましたね!

    モデレーター gatespace

    (@gatespace)

    こんにちは。
    解決されたら右上のプルダウンを「解決済み」にしておいてくださーい。
    (トピックスを開始した人にしかできません)

    トピック投稿者 goods.1971

    (@goods1971)

    ということで、一件落着。

    みなさまありがとうございました。

15件の返信を表示中 - 1 - 15件目 (全15件中)
  • トピック「トップページやアーカイブページで表示される記事数を変更したい」には新たに返信することはできません。