サポート » 使い方全般 » WP 3.1でカテゴリーベースを付けずにページネーションすると404エラーにな

  • お世話になります。

    パーマリンクの設定で、
    /%category%/%postname%/
    としているとき、

    http://www.hoge.com/category/hoge/
    とせずに、
    http://www.hoge.com/hoge/
    としてアクセスするために、WP No Category BaseやTop Level Categories Fix
    を使い分けて、2.9までのバージョンでは、ページネーションも
    問題なく動作していることを確認しておりましたが、

    3.0.5では、404エラーが返されてアクセスができない現象が発生しておりました。
    仕方がなく3.1にアップデートするとカテゴリーベースをとってもアクセスはできるようになったのですが、ページネーションによる遷移時は404となります。

    NG:
    http://www.hoge.com/hoge/page/2/
    OK:
    http://www.hoge.com/category/hoge/page/2/

    もちろんWordPressの仕様上正しいリンク構造は下の方なのは理解しているのですが、
    以前できていたことができなくなるということで既存のURLを変更しなければならなくなることについては、できる限り避けたいと考えています。

    解決方法など、ご存知の方がいらっしゃいましたら
    ご教示いただければ幸いです。
    どうぞよろしくお願いします。

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

    (@swd)

    細かなバージョンの問題で言うと
    2.9ではなく、3.0.4まではこの問題は
    起こっていないようでしたので追記させていただきます。

    モデレーター gatespace

    (@gatespace)

    自分のローカル環境でテストして、ちゃんとリンクされましたよ。
    WordPress 3.1
    パーマリンク設定 /%category%/%postname%/
    WP No Category Base バージョン 0.7

    ページナビゲーション(ページネーション)はこちらのサイトを参考に自作しました。
    WP-PageNavi を使わずにナビゲーション表示
    http://www.yuriko.net/arc/2008/07/26/navigation/

    「ページネーション」部分のソースが鍵になると思いますが。
    何かのプラグイン使ってるのでしょうかね?

    トピック投稿者 SWD

    (@swd)

    > gatespace さん

    早速のご回答ありがとうございます。
    プラグインは上記で書いたものの他には
    WP Multibyte Patchが適用されているのみとなります。
    また、バージョンもgatespaceさんと同じものとなります。

    ページネーションのソースも百合子さんのサイトのソースでも
    試していますが、現象としては同じでした。

    なお、404になったページで
    get_query_var( ‘paged’ )を取得すると正しく「2」等が返却されるようです。

    また、Trac上の3.1.1へのマイルストーンで気になる内容を見つけたのですが、関連性は薄そうでしょうか。
    http://core.trac.wordpress.org/ticket/16703

    モデレーター gatespace

    (@gatespace)

    うーん。
    テーマ Twenty Ten (Ver 1.2) の loop.php (の一番最後に)下のコードを入れてみて、
    カテゴリーアーカイブを表示させてみましたが、SWDさんと同じ状況を再現できません・・・。

    <?php /* paging navigation */
    global $wp_rewrite;
    $paginate_base = get_pagenum_link(1);
    if (strpos($paginate_base, '?') || ! $wp_rewrite->using_permalinks()) {
    	$paginate_format = '';
    	$paginate_base = add_query_arg('paged', '%#%');
    } else {
    	$paginate_format = (substr($paginate_base, -1 ,1) == '/' ? '' : '/') .user_trailingslashit('page/%#%/', 'paged');
    	$paginate_base .= '%_%';
    }
    
    $pagination = array(
    	'base' => $paginate_base,
    	'format' => $paginate_format,
    	'total' => $wp_query->max_num_pages,
    	'mid_size' => 5,
    	'current' => ($paged ? $paged : 1),
    	'prev_text' => '&laquo; Previous',
    	'next_text' => 'Next &raquo;'
    	);
    
    echo '<div class="page-navi">'."\n";
    echo paginate_links($pagination);
    echo '</div>'."\n";
    ?>

    カテゴリーのスラッグが「cat-a」として、
    2ページ目は http://www.exsample.com/cat-a/page/2/ になってます。
    (他にプラグインは WP Multibyte Patch しか入れていません)

    トピック投稿者 SWD

    (@swd)

    > gatespace さん

    度々ありがとうございます。
    私も気になって他の(自前の)環境で試してみたところ、
    問題なく動作しているようでした。
    (先に試しておけばよかったですね。すみません。)

    そうなると、サーバの環境によるものでしょうかね。。。

    実はインストールも私がやったものではなく、
    ちょっとおかしいので見て欲しいということで
    管理画面に入る権限だけもらっている状態でして
    これ以上調べようがなさそうですので、
    一旦サーバ管理者に問い合わせてみようと思います。

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

    モデレーター gatespace

    (@gatespace)

    となると、「自前の環境」に問題の起きているテーマを適用して、
    同じ現象が起きればテーマに問題があるのでしょうし、
    そうで無ければサーバーなど他の要因が考えられます。
    問題の切り分けを行ってどこに原因があるのか精査しましょう。

    いずれにしても今回、問題が起きているのはWordPress本体が原因ではないので、
    このトピックスも「バグ報告と提案」以外に移動してもらいましょう。

    モデレーター Naoko Takano

    (@nao)

    トピックを「使い方全般」に移動しました。
    gatespace さん、ありがとうございました。

    SWD さん
    パーマリンクの設定を変えて、元に戻してみるというのはすでに試されましたでしょうか?
    (.htaccess を再生成)
    念のため。。。

    トピック投稿者 SWD

    (@swd)

    > McCracken さん、gatespace さん

    トピックスの移動の件ありがとうございます。

    パーマリンクの設定の件ですが、テーマの入れ替えも含めて、
    一通り試してはいますがうまくいかないようです。

    その後の別案件で私が初めからセッティングしたものについては
    問題ありませんでしたので、最終的にはテーマファイルと記事データ類の
    バックアップを取って初めから入れなおすことも視野に入れています。

    以上、ご連絡ありがとうございました。

8件の返信を表示中 - 1 - 8件目 (全8件中)
  • トピック「WP 3.1でカテゴリーベースを付けずにページネーションすると404エラーにな」には新たに返信することはできません。