前提・実現したいこと
現在、WordpressのプラグインDownloadMonitorで作成したコンテンツについて、以下の仕様を満たすページ及び処理を実装している際に詰まってしまったので、ご教授いただけないでしょうか。
①ページを最初に開いた時:DownloadMonitorで作成したコンテンツを全量表示
②検索ボックスでキーワードを入れるとタイトル検索をし、該当するコンテンツを表示
③0件の場合は、検索結果がない旨をを表示
④表示件数が9以上はページネーション
以下実装中のコードです
・一覧ページ
html
1<?php 2/* 3Template Name: ダウンロードモニター 4*/ 5?> 6 7<?php get_header(); ?> 8 <div id="primary" class="content-area"> 9 <main id="main" class="site-main"> 10 <form action="<?php echo dmsearch(); ?>" method="post"> 11 <input type="text" name="dmtitle" placeholder="DMタイトル検索"> 12 <input type="submit" value="検索"> 13 </form> 14 15 <ul> 16 <?php if(count($dmsearchid) >=1): ?> 17 <p><?php echo count($dmsearchid) ?>件見つかりました。</p> 18 <?php foreach($dmsearchid as $did): ?> 19 <?php echo do_shortcode('[download id="'.$did.'"]'); ?> 20 <?php endforeach; ?> 21 <?php else: ?> 22 <p>検索結果は見つかりませんでした。</p> 23 <?php endif; ?> 24 </ul> 25 </main> 26 </div> 27 28 29<?php get_footer(); ?> 30
・function.php(一部抜粋)
html
1function dmsearch(){ 2 global $wpdb; 3 4 $dmtitle = $_POST["dmtitle"]; 5 6 $dmsearchid = $wpdb->get_col( 7 $wpdb->prepare( 8 "SELECT ID FROM $wpdb->posts WHERE post_title=%s AND post_status=%s AND post_type=%s ORDER BY post_date DESC", 9 "%$dmtitle%", 10 "dlm_download", 11 "publish" 12 ) 13 ); 14}
試したこと
・一覧ページのフォームからfunction.phpの関数に入力値を受け渡そうとした。
・function.phpの関数で検索結果のSQLを実行して一覧ページのフォームへ結果を返そうとした。
・DBはWordpressのDBクラスを使用して接続しようとした。
補足情報(FW/ツールのバージョンなど)
・OS:Windows10
・Wordpress5.3.2
・DownloadMonitor 4.4.2
回答1件
あなたの回答
tips
プレビュー