質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

89.23%

【WordPress】Pagenaviで2ページ目以降が404エラーとなる件の解決方法について

受付中

回答 1

投稿

  • 評価
  • クリップ 1
  • VIEW 6,389

YousukeTanaka

score 74

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

現在、home.php(トップページ)にカスタム投稿の一覧表示をさせたいと考えています。
ECサイトのように商品一覧を表示させるイメージです。

問題は、投稿も上手く表示され、pagenaviも表示はされるのですが、2ページ目以降をクリックしても、
404エラーが出てしまいます。wordpressのバージョンは、4.5.2です。

問題の解決方法を知りたいと考えています。よろしくお願いいたします。

以下、前提です。

一ページあたりの投稿数を6件、投稿の日付順に並べたいと考えています。「表示設定」も1ページ当たり6件、
プラグインでWP-PageNaviを使用しています。また、functions.phpには特にこれに関する記載はしていません。

以下、参考としていただきたい症状/コードです。

イメージ説明

イメージ説明

イメージ説明

イメージ説明

<?php 
                        $paged = get_query_var('page') ? get_query_var('page'):1;
                        $args = array(
                            'post_type' => 'cart',
                            'paged' => $paged,
                            'posts_per_page' => 6,
                            'orderby' => 'post_date',
                        ); 
                        $myposts = new WP_Query( $args ); ?>
                        <?php if($myposts -> have_posts()): ?>
                        <div class="row">
                        <?php while($myposts -> have_posts()): $myposts->the_post(); ?>

                                <div class="col-sm-4 col-md-4">
                                    <div class="thumbnail">
                                        <div class="category">
                                            <ul>
                                                <li>
                                                <?php if( in_array( 'Mens', get_field('grp') ) )
                                                {
                                                echo '<img src="' .get_stylesheet_directory_uri(). '/img/mens.png" alt=""/>';
                                                }
                                                ?>
                                                </li>
                                                <li>
                                                <?php if( in_array( 'Ladys', get_field('grp') ) )
                                                {
                                                echo '<img src="' .get_stylesheet_directory_uri(). '/img/ladys.png" alt=""/>';
                                                }
                                                ?>
                                                </li>
                                                <li>
                                                <?php if( in_array( 'Kids', get_field('grp') ) )
                                                {
                                                echo '<img src="' .get_stylesheet_directory_uri(). '/img/kids.png" alt=""/>';
                                                }
                                                ?>
                                                </li>
                                            </ul>
                                            <!--サムネイル画像-->
                                            <a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>">
                                                <?php the_post_thumbnail('post-thumbnails'); ?>
                                            </a>

                                            <!--キャプション-->
                                            <div class="caption">
                                                <?php $get_meta = $olivecart_meta->get_meta($post->ID); ?>
                                                <!--商品名-->
                                                <h5><a href="#"><?php echo $get_meta->item_title;?></a></h5>
                                                <!--販売価格-->
                                                <h5><?php echo $get_meta->item_option_price;?>円(税込)</h5>
                                                <!--ターム名-->
                                                <p>商品グループ:<?php echo get_the_term_list($post->ID,'group', '', '、', ''); ?></p>
                                            </div>
                                        </div>
                                    </div> <!-- thumnail -->
                                </div> <!-- col -->
                           <?php endwhile; ?><!-- ここまでサブループ。投稿がまだある場合は◯行目に戻る -->
                           </div>
                           <?php endif; ?>
                        <?php if(function_exists('wp_pagenavi')) wp_pagenavi(array('query' => $myposts));?>
                        <?php wp_reset_postdata(); ?>
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • asahina_dev

    2016/08/03 12:48

    パーマリンクの種別が「カスタム名」じゃなく「役職名」になっているのはスクリーンショット撮影時の操作ミスでいいのですよね?

    キャンセル

回答 1

0

こんにちは。

http://naoyu.net/wordpress/wp-pagenavi-404error/648/
この辺で解決しないでしょうか?

本来、下記を表示したいんですよね?
http://wp-7-crocroth.c9users.io/?page=2

>問題の解決方法を知りたいと考えています。よろしくお願いいたします。
・現状維持なら、上記「?page=2」になるようにパーマリンク設定を書き換え
・wp-pagenaviの設定を見直し
・query系の関数変更

https://wp-7-crocroth.c9users.io/page/2/
ドメイン直下で行くのは酷で気持ち悪いですね。。。(個人的には2ページ目以降は/cart/page/配下とかでページングさせたい。。。)

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2016/05/10 13:33

    お世話になります。添付の参考URLは既に試していました。丸2日同じ問題に取り組んでいますので、ほとんどのサイトは確認したという状況です。涙

    そこで、やはりご指摘の通りパーマリンクの設定に問題があるのではと考えました。ご指摘のように、本来 http://wp-7-crocroth.c9users.io/?page=2 を表示したいのです。
    教えていただいたように、「記「?page=2」になるようにパーマリンク設定を書き換え 」たのですが、ここで詰まってしまいました。例えば、カスタム構造で次のようなパーマリンクを試しましたが、うまくいきません。
    /?p=123(基本)
    /?page=123/ (上記を真似ねました。)
    /cart/%postname%/  等

    パーマリンクをカスタマイズする時のルールみたいなものはあるのでしょうか?
    また、そもそもなのですが、home.phpに投稿一覧をもってくることはできるのでしょうか?

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 89.23%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる