前提・実現したいこと
Wordpressでカスタム投稿ページの持つカスタムフィールド値に、検索キーワードが含まれていれば検索結果に一覧表示させ、1ページの表示数を10件までとしたいです。
通常のWordPressの検索結果にはかからないため、データベースからキーワードに合致する記事IDを抽出し変数$data_postに格納しました。
一覧として表示するところまではできていますが、通常のWordPressのアーカイブページのように表示数の限度を設け、ページ送りで閲覧できるようにしたいです。
発生している問題・エラーメッセージ
$data_post内には既に配列として、検索キーワードに該当したカスタム投稿ページのIDが格納されています。
以下の例では11件該当データがあります。
posts_per_pageをこの配列に対して使い、この配列の中から10件まで現在のページに表示させ、残りは次のページに表示させる方法がわかりません。
現在は、foreach文で、以下の配列内で、該当データの記事IDが格納されている$postidの個数分ループさせております。
var_dump($data_post); array (size=11) 0 => string '3609' (length=4) 1 => string '3624' (length=4) 2 => string '3625' (length=4) 3 => string '3626' (length=4) 4 => string '3627' (length=4) 5 => string '3628' (length=4) 6 => string '3629' (length=4) 7 => string '3630' (length=4) 8 => string '3631' (length=4) 9 => string '3632' (length=4) 10 => string '3633' (length=4)
### 該当のソースコード search.form.php <?php if(!empty($data_post)): ?> <ul> <?php foreach($data_post as $postid): $post = get_post($postid); ?> <li><a href="<?php echo get_permalink();?>"><?php echo the_title();?></a></li> <?php endforeach; ?> </ul> <?php else: ?> <div> <p>検索結果はありません</p> </div> <?php endif; ?>
ーーー出力結果ーーー 〇〇役場 〇〇市役所 ・ ・ 〇〇役場 11件 ### 補足情報(FW/ツールのバージョンなど) WordPress v5.5.1, PHP v7.3.5
あなたの回答
tips
プレビュー