質問: ### 前提・実現したいこと すみません、よろしくお願い致します。 件名の通りつまづいております。 缶コーヒーを例に、ご説明させていただければと思います。 おおまかな構成は以下の通りページが必要となります。 ・トップ ・固定ページ(コーヒーの紹介ページ)+商品一覧表示(新着的なもの) ・固定ページ(カフェオレの紹介ページ)+商品一覧表示(新着的なもの) ・商品一覧ページ(コーヒーとカフェオレの商品が全部混在) ・詳細ページ カスタム投稿タイプから缶コーヒーを登録し、 固定ページの商品一覧表示部分に5件新着分を表示させたいという内容となります。 ### 発生している問題 首記の通り問題となっている部分は固定ページの一覧表示部分となります。 エラーはないのですが、 一覧部分に5件表示させたくコーヒー缶とカフェオレ缶を ランダムに必要件数以上登録して試したところ、 コーヒー缶は3件、カフェオレ缶は2件しか表示されなかったりと 思ったような動きになりません。 以下のようになります。 1.コーヒー 2.コーヒー 3.カフェオレ 4.コーヒー 5.カフェオレ 6.コーヒー 7.コーヒー 8.カフェオレ 9.カフェオレ 10.コーヒー 11.カフェオレ 12.カフェオレ 13.コーヒー 結果 ・固定ページ(コーヒーの紹介ページ)+商品一覧表示(新着的なもの) コーヒー コーヒー コーヒー ・固定ページ(カフェオレの紹介ページ)+商品一覧表示(新着的なもの) カフェオレ カフェオレ そこでurlにpage/2を付与してみたところ 次のページに表示されておりました。 phpは、 'posts_per_page' => 5,としてif文で条件分岐させていることが原因かと思うのですが・・・ そのため「最新登録順に5件を振り分けて表示し、その他は、page/2に表示」 という現象になっているのかと推察しています。 ファイル構成は、 type.php(コーヒー缶とカフェオレ缶を混在して表示させる一覧ページ) coffee.php (コーヒーを表示させるテンプレート) cafe_au_lait.php (カフェオレを表示させるテンプレート) としています。 以下にソースコードを添付致します。 どこに問題があるのか全く分からず、途方に暮れております。 どうか、ご助言いただけますよう何卒よろしくお願い申し上げます。 ### 該当のソースコード coffee.php ``` 'type', 'posts_per_page' => 5, 'paged' => $paged, ); ?> ID,"choice",true); ?> ``` cafe_au_lait.php.php ``` 'type', 'posts_per_page' => 5, 'paged' => $paged, ); ?> ID,"choice",true); ?> ```
回答: 解決することができました。 お騒がせいたしました。 原因は、非推奨のテンプレートタグquery_posts() を使用していたため、 get_posts テンプレートタグを使用すること教えていただきまして、 以下の通りに変更することで解決となりました。 'type', 'posts_per_page' => 5, 'paged' => $page, 'orderby' => 'date', 'meta_query' => array( array( 'key' => 'choice', 'value' => 'コーヒー', ) ), ); $postslist = get_posts( $args ); ?> ありがとうございました。