TOPページ(index.php)に掲載した商品一覧の、ページ送りが動きません
タグ: ページ送り、商品一覧
-
投稿者投稿
-
2016年3月7日 10:27 AM #77701miwarock777参加者
TOPページ(index.php)に商品を件数指定で掲載し、ページ送りをつけたいのですが、
2ページ目以降が404エラーとなってしまいます。ページ数のカウントは表示されています。
いろんな方法を参考にしながら試したのですが、ダメでした。
どこかタグがおかしいでしょうか・・・?
たくさん試しているうちに、よく分からなくなってきてしまいました。。。カテゴリスラッグは「item」としています。
ページ送りのプラグインは「WP-pagenavi」を使いたいです。<?php query_posts( array('category_name'=>'item', 'posts_per_page'=>8) ); ?> <?php if (have_posts()) : ?> <?php while (have_posts()) : the_post(); usces_the_item(); ?> ==ここにループ== <?php endwhile; ?> <?php if(function_exists('wp_pagenavi')){wp_pagenavi();} ?> <?php else: ?> <p>商品がない場合の表記</p> <?php endif; wp_reset_query(); ?>
同じようなことをしたい場合に、他に良い方法があるのでしょうか?
2016年3月7日 11:32 AM #77702miwarock777参加者あるサイトで、
posts_per_pageの件数(XX)が、管理画面の「設定 > 表示設定」で1ページの表示を設定している投稿数より多くないといけない
というのを見たので、
管理画面の「設定 > 表示設定」4件、posts_per_page を16件とし、
下記のようにしたところ、2ページ目までは表示されるようになりましたが、
3ページ目以降が404になってしまいます。これはどういう現象なのでしょうか…?
<?php query_posts('cat=22&posts_per_page=16&paged='. $paged); ?> <?php if (have_posts()) : while (have_posts()) : the_post(); ?> <?php usces_the_item(); //オブジェクト準備 usces_have_skus(); //ループ用フラグ立てる ?> ==ここにループ== <?php endwhile; ?> </ul> <?php if(function_exists('wp_pagenavi')){wp_pagenavi();} ?> <?php else : ?> <p>商品がない場合の表記</p> <?php endif; wp_reset_query(); ?>
2016年3月7日 2:22 PM #77705nanbuキーマスターこんにちは
トップページには、本来の global $posts があります。WP-pagenavi はこの本来のループに対してのものとなり、テンプレート内で行っている query_posts() としては正常に動作しません。
トップページで、ページングを行いたいという事でしたら query_posts() を使わずに、トップページ本来のループを、pre_get_posts フックを使って作ってやると良いかと思います。
もしくは、商品一覧部分を ajax 化するという手もあるかと思います。
2016年3月7日 6:02 PM #77707miwarock777参加者nanbuさん、コメントありがとうございました!
トップページには、本来の global $posts があります。WP-pagenavi はこの本来のループに対してのものとなり、テンプレート内で行っている query_posts() としては正常に動作しません。
なるほどです、WPと同じようにしても動かないわけですね…orz
トップページで、ページングを行いたいという事でしたら query_posts() を使わずに、トップページ本来のループを、pre_get_posts フックを使って作ってやると良いかと思います。
アドバイス通り、pre_get_posts を使いました。
うまくいきましたので、ここに書いておきます!カテゴリースラッグ「item」の商品を、TOPページに20件表示してページを送り(WP-pagenavi)をしています。
function getitemorder( $query ) { if ( is_admin() || ! $query->is_main_query() ) return; global $wp_query, $usces; if ( $query->is_home() ) { $wp_query->query_vars = $usces->get_item_cat_ids(); $wp_query->set('category_name','item'); $wp_query->set('posts_per_page',20); return; } } add_action( 'pre_get_posts', 'getitemorder' );
index.phpのメインループは通常のものです。
<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?> --ここにループ-- <?php endwhile; ?> <?php else : ?> --記事がないときの表示-- <?php endif; ?> <?php if(function_exists('wp_pagenavi')) { wp_pagenavi(); } ?>
アドバイスくださって、ありがとうございました!
- この返信は8年、 8ヶ月前にmiwarock777が編集しました。理由: コードを追記しました
2016年3月15日 7:56 PM #77790Yuko.S参加者お世話になっております。
先日、有料のWCEX Mobileを購入しカスタマイズ中です。
スマホの表示で苦戦しせおります。
トップページに商品のお勧め、新商品、お供えの一覧を表示したのですが
新商品の方が商品が3こしか表示されず、ページ送りも作動しません。
お勧め商品は問題なく作動しています。
現在はページ送りは削除しています。
どのようにすれば作動するかご教示下さい。ホームページは http://fleur-kira.com
何卒宜しくお願い致します。
2016年3月16日 9:37 AM #77804yasumaxキーマスターこんにちは。
Yuko.Sさん>
本トピックと質問内容が異なりますので、新たにトピックを立てなおしてください。
また、該当箇所は「Roto」というスワイプなどで横スクロールできるように高さを固定しています。
全件表示する場合は、スタイルの調整も必要になってきます。2016年3月16日 11:31 AM #77810Yuko.S参加者こんにちは。
yasumaxさん
高さが関係していたのですね。
初歩的な質問で申し訳ありません。
先ずはスタイルの変更をしてみます。
ありがとうございました。 -
投稿者投稿
- このトピックに返信するにはログインが必要です。