サポート » 使い方全般 » single.phpでのページ送りがnotfoundになる

  • WP-PageNaviでページ送りをしていますが、
    個別記事single.phpの2ページ目以降、
    URLが「~/page/2/」のように切り替わるものの、
    notfoundとなり表示されません。

    諦めないで…!WordPressでページ送りがうまく行かない時の3つの対処法+究極奥義
    上記などを試しましたがうまくいかず、今は下記のようなソースにしています。

    <?php
    $paged = get_query_var( 'paged' ) ? get_query_var( 'paged' ) : 1;
    query_posts( 'posts_per_page=1&paged=' . $paged );
    ?>
    <?php if (have_posts()) : ?>
    <?php while (have_posts()) : the_post(); ?>
    <h1><?php the_title(); ?></h1>
    <p><?php the_content(); ?></p>
    <?php endwhile; endif; ?>
    <?php wp_pagenavi(); ?>
    <?php wp_reset_query(); ?>

    カスタム構造は「/%category%/%postname%/」としており、
    Top Level Categoriesプラグインで、URLから「category」を外しています。
    試しにパーマリンクをデフォルトにすると、ページ送りできましたが、
    構成上「/%category%/%postname%/」にしたいです。

    ローカルのテスト環境(Instant WordPress)では動作しているので、
    サーバの問題かとも考え、使用しているさくらスタンダードで
    同様のケースがないか調べていたところ、
    パーマリンクを変更した場合、.htaccessが書き換わるとことがわかりました。

    パーマリンクを再設定して見てみたところ、
    以下のように書き換わっており、自分の調べた限りでは
    問題がなさそうでした。

    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    </IfModule>

    ここ数日いろいろと試しているのですが、解決できず、
    解決に向けて考えられる手立てがありましたら、
    お力をお貸しください。よろしくお願いいたします。

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

    (@yd2)

    追記です。
    Top Level Categories Fixプラグインの導入や
    全プラグインを無効にした場合も試してみましたが
    解決できていません。

    モデレーター のむらけい (Kei Nomura)

    (@mypacecreator)

    WP-PageNaviでページ送りをしていますが、
    個別記事single.phpの2ページ目以降、
    URLが「~/page/2/」のように切り替わるものの、
    notfoundとなり表示されません。

    挙げてくださったコードは、どのテンプレートファイルに記述されているのでしょうか?
    仮にsingle.phpに書かれているのであれば、触るテンプレートが間違っているということになります。

    ちなみに、挙げてくださったコードを、WP-Pagenaviを有効化した手元の環境にそのままコピペしたところ問題なく動きました。
    (自分の場合はloop.phpに記述しました。loop.phpが無いテーマなら、index.phpとかarchive.phpとかになると思います)

    ##補足
    そうではなく、個別記事(single.php)内で<!–nextpage–>を挿入してページ分割するというケースだとWP-PageNaviの処理ではなくなります。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「single.phpでのページ送りがnotfoundになる」には新たに返信することはできません。