サポート » 使い方全般 » カスタム投稿一覧表示の固定ページに付けたページ送りが404エラーで動き

  • 解決済 marori

    (@marori)


    ページ送りという機能を初めて付けようとしたのですが、動かずに悩んでいます。
    現在、カスタム投稿でinformationと命名した項目を作り、お知らせのページとして表示させ、固定ページにその投稿一覧を表示するようにしています。
    固定ページにカスタム投稿の一覧を表示させるという点では問題なく行う事が出来るのですが、ページ送りのナビゲーションを付けると、ナビゲーション自体が表示されても404エラーで次のページへ移動することができません。

    ・バージョン:3.5.1
    ・使用中プラグイン:
    add css js、Akismet、All in One SEO Pack、Broken Link Checker、Contact Form 7、
    Custom Post Type UI、HITS- IE6 PNGFix、OnlyAdmin、PS Disable Auto Formatting、
    Scroll To Top、Subscribe2、WP Multibyte Patch
    ・使用テーマ:オリジナル
    ・サーバー環境:さくらインターネット スタンダードプラン
    ・確認ブラウザ:firefox、safari、chorome
    ・パーマリンク:カスタム構造「/%category%/%post_id%/」

    1. WP-PageNavi使用時
    まず先に、WP-PageNaviプラグインを使いナビゲーションを表示させようとしました。
    この際に使用していた一覧表示コードは下記です。

    <?php
    $args = array(
         'post_type' => 'information',
         'paged' => $paged,
         'posts_per_page'=> 5
    ); ?>
    <?php query_posts($args); ?>
    <?php if (have_posts()) : ?>
    	<?php while (have_posts()) : the_post();
    	/* ループ開始 */ ?>
        <div class="secInner infoInner">
        	<h3><?php the_title(); ?></h3>
        	<p class="data"><?php the_time("Y年m月j日") ?></p>
        	<?php echo mb_substr(strip_tags($post-> post_content), 0, 200); ?>
            <a href="<?php the_permalink(); ?>"><br /> ▼続きを読む</a >
        </div><!-- //end .infoInner -->
        <?php endwhile; ?>
    <?php else : ?>
        <div class="secInner">
    		<h3>記事がありません</h3>
    		<p>表示する記事はありませんでした。</p>
        </div><!-- //end .secInner -->
    <?php endif; ?>

    上記を一覧表示用固定ページ専用のテンプレートに記述し、出力していました。
    ナビゲーションは表示されますが、404エラーでリンクが動作しません。
    この際、下記のサイト等を参考にさせて頂きました。

    諦めないで…!WordPressでページ送りがうまく行かない時の3つの対処法+究極奥義 | ウェビメモ

    カスタム投稿タイプでのページ送り(ページネーション)が「404 Not Found」を返すときの対処法 | 鉄王
    [WordPress]カスタムタクソノミーのアーカイブで404 NotFoundになる見落しがちな原因 | RuputerFan

    2. プラグインを使用せずにページ送りナビを設置(第1弾)
    WP-PageNavi を使わずにナビゲーション表示 (改良版)

    プラグインを使用しない方がいいのだろうかと思い、上記サイトのソースを使用してナビゲーションを設置しましたが、WP-PageNavi使用時と同じくナビゲーションの表示は出ましたが次ページへ移動しようとするとエラーになります。
    この時点で、WP-PageNaviは停止しました。

    3. プラグインを使用せずにページ送りナビを設置(第2弾)
    WordPress3.0のカスタム投稿タイプを、実案件を想定して実践してみる

    引数が一致しないとか取得出来ていないとかといったところでおかしいのだろうかと思い、
    出力コードとナビゲーションのコードが一貫して参考できる上記サイトのソースへ、一覧出力部分とナビゲーション部分を変更しました。
    しかし、これまでと同様にナビゲーションは表示されてもページ送りが出来ません。

    現在は「3.」の状態で止めて、解決方法を探しています。
    なお、一覧表示をする固定ページ周りの構成としては以下です。

    ・information(固定ページ)
    テンプレートでinformation.phpを適応。

    ・information.php
    informationページ専用テンプレート。
    一覧出力ソース、ページ送りソース(出力)はこちらに記述。

    ・pagenate.php
    information.phpにある、ナビゲーションを出力させるソースの本体。
    実際にページ送り機能のソースがあるのはこちら。

    ・function.php
    WordPress3.0のカスタム投稿タイプを、実案件を想定して実践してみるのサイト様の内容をそのまま記述。

    以上のような構成になっています。

    これまで行ったどの状態でも共通して、ナビゲーションにオンマウスするとリンク先アドレスとして「〜/page/2/」のアドレスが見えていますが、404エラーになります。アドレスの直打ちでも表示はされません。

    なお、wordpressはルートディレクトリ直下にある「wp」というフォルダ内で動かし、ルートディレクトリにはindex.phpと.htaccessがある状態です。
    独自ドメインの一つ下にあるwordpressフォルダにドメイン直でアクセスする方法 | niloriorを参考)

    ページ送りが404エラーの対処方についてはネット上で様々な情報を見つけましたが、自分が遭遇している状態が一体どんなもので何を変更していけばいいのかが上手く理解出来ていません。
    お手数ですが、ご助言を頂けると助かります。
    よろしくお願いします。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • モデレーター gatespace

    (@gatespace)

    パーマリンク設定をデフォルトに戻してもダメですか?

    トピック投稿者 marori

    (@marori)

    gatespace様

    早速のご返信ありがとうございます。
    パーマリンクをデフォルトに戻すと、問題なく動きます。
    しかし、出来ればアドレスはデフォルトの「page_id=〜」や「?p=〜」ではなく、「/%category%/」で設定したときのようなアドレスを設定したいと思っております。
    ご指摘頂いたパーマリンク設定がおかしいのかなと考え、改めてパーマリンク周りの設定をデフォルト以外で設定しなおしてみたところ、なんとか動かす事ができました。
    以下、その変更内容です。

    1.パーマリンクをカスタム構造「/%post_id%/」のみに設定する。
    この時点で、一覧表示の固定ページ「information」は表示出来、ナビゲーションも動いていたのですが、各カスタム投稿記事は見えない状態になりました。

    2.「Custom Post Type Permalinks」を追加する。
    「/%post_id%/」しか設定していないからページが表示出来ないのかなと思い、カスタム投稿のみにパーマリンクを設定することにしました。
    Custom Post Type Permalinksを有効化したところ、各カスタム投稿記事は表示出来たのですが、固定ページ「information」の表示が、テンプレートとcssが外れた状態になってしまいました。

    3.固定ページを作り直す。
    固定ページを再度保存してみても表示が戻らなかったので、一度「information」を削除し、同じ名前で固定ページを作成。cssとテンプレートをあてて公開してみましたが、この状態でもcssとテンプレートが外れたページのまま表示されます。
    もしかして固定ページとカスタム投稿の名前が同じであることが何か問題になっているのかなと思い、固定ページを「info」として作り直したところ、問題なく一覧が表示される様になり、ナビゲーションも期待どおりに動き、カスタム投稿ページも見えるようになりました。

    以上です。
    この状態ではカスタム投稿記事も見えているのですが、それぞれ名前が異なるので、固定ページ「info」からカスタム投稿記事のリンク先に飛んだ際にはアドレスに差違が出てしまう状態です。カスタム投稿記事も「info」にすれば解決するのですが、同じ名前ではまたおかしくなるのではと思い、現在はまだ試していません。

    当初の問題であったページ送りナビ部分は解決することが出来ました。
    なぜ固定ページの表示がおかしくなったのかなど色々と疑問点を残したままなので、もっとwordpressを勉強して試行錯誤してみます。
    ご助言ありがとうございました!

    モデレーター gatespace

    (@gatespace)

    もしかして固定ページとカスタム投稿の名前が同じであることが何か問題になっているのかなと思い、固定ページを「info」として作り直したところ、問題なく一覧が表示される様になり、ナビゲーションも期待どおりに動き、カスタム投稿ページも見えるようになりました。

    その通りで、固定ページのスラッグとカスタム投稿タイプ名を一緒にしちゃダメです。
    今回はここが原因です。
    (フォーラムにも以前そのような投稿がありました)

    固定ページ「info」からカスタム投稿記事のリンク先に飛んだ際にはアドレスに差違が出てしまう状態です。

    固定ページにカスタム投稿タイプの一覧を表示させるんじゃなくて、
    カスタム投稿タイプを has_archive = true で作って、
    カスタム投稿タイプのアーカイブを作っちゃえばいいのでは?

    トピック投稿者 marori

    (@marori)

    gatespace様

    再度の助言ありがとうございます。
    固定ページのスラッグとカスタム投稿タイプ名が同一になるとエラーのような状態になるのですね。勉強になりました。
    時間をみて、そちらの投稿も探してみたいと思います。

    お恥ずかしながら、カスタム投稿のアーカイブというものを今初めて知りました。
    早速調べてアーカイブを表示出来る様にしてみたところ、「information」というページで表示することが出来ました。
    ありがとうございます!これでどうにか形になりそうです。

    これまでは色々なサイト様のソースを参考に切り貼りと少しの修正ばかりでどうにか形を成していたので、どうにも基本的な知識の欠落が多いようです。
    しっかりと勉強していきます。本当にありがとうございました。

4件の返信を表示中 - 1 - 4件目 (全4件中)
  • トピック「カスタム投稿一覧表示の固定ページに付けたページ送りが404エラーで動き」には新たに返信することはできません。