メニュー 閉じる

絞り込み検索-自作

アーカイブPHPを作成
archive-aaaaaa-search.php などとして保存
下記の例は検索項目をプルダウン方式HTMLで作成

<div class="production_results_area">
    <?php
$mate = $_GET['mate'];
$reg = $_GET['reg'];
$oreg = $_GET['oreg'];
$kwd = $_GET['kwd'];


$paged = ( get_query_var( 'paged' ) ) ? absint( get_query_var( 'paged' ) ) : 1;
        $args = array (
        'category__in' => array($mate,$reg,$oreg,$kwd), // カテゴリのIDを記入する
        'order' => 'DESC', // 記事の並び順 昇順(ASC)、降順(DESC)
        'paged' => $paged,
        'post_per_page' => 12, //表示する記事の数
'paged' => $paged
    );
    $paged = (int) get_query_var('paged');
    $the_query = new WP_Query( $args ); ?>
    <?php if( $the_query -> have_posts() ): while ( $the_query -> have_posts()): $the_query -> the_post(); ?>
   
 <div class="production_results_box">


<a href="<?php the_permalink(); ?>">
<div class="expansionimg_box">
<img src="<?php the_field('actual-product-image01'); ?>" >
</div>
<!--<?php the_category(' '); ?>-->
<p class="production_results_cate">
<?php
$cats = get_the_category();
foreach ( $cats as $cat ):
if ( $cat->parent ) echo '<span class="cate_name">'. $cat->cat_name.'</span>';
 endforeach;
?>
</p>


<div class="purchaselist_item_title">
<?php 
$text = get_the_title();
$limit = 52;
 
if(mb_strlen($text) > $limit) { 
$title = mb_substr($text,0,$limit);
echo "<h3>".$title. "……</h3>" ;
} else {
echo "<h3>".$text."</h3>";
} ?>


</div>
</a>
</div>
<?php endwhile; endif; ?>
</div>

<?php
   // pagination
    echo '<div class="pagination">';
    if ($the_query->max_num_pages > 1) {
        echo paginate_links(array(
            'base' => str_replace(999999999, '%#%', esc_url(get_pagenum_link(999999999))),
            'format' => '?paged=%#%',
            'current' => max(1, $paged),
            'total' => $the_query->max_num_pages,
            'end_size'  => '1',
            'mid_size'  => '2',
            'prev_next' => true,
            'prev_text' =>  '<',
            'next_text' =>  '>',
            'type'      => 'list'
        ));
    }
    echo '</div>';


wp_reset_postdata();
?>


<form method="get" id="searchform" action="<?php echo esc_url( home_url( '/enhanced-search' ) ); ?>">

<label for="s">素材</label>
<select name="mate" id="mate">
  <option value="">選択してください</option>
<option value="19">ステンレス</option>
<option value="20">炭素鋼</option>
<option value="21">特殊材料</option>
  </select> 
  
<label for="s">適用法規</label>
<select name="reg" id="reg">
  <option value="">選択してください</option>
<option value="5">第一種圧力容器</option>
<option value="6">第二種圧力容器</option>
<option value="7">高圧ガス特定設備</option>
  <option value="8">消防法タンク(危険物タンク)</option>
  <option value="9">ボイラー</option>
  <option value="10">その他容器・構造物</option>
  </select> 
  
<label for="s">適用法規外</label>
<select name="oreg" id="oreg">
  <option value="">選択してください</option>
<option value="11">大径鋼管</option>
<option value="12">各種構造物製造</option>
</select>
 
 <label for="s">キーワード</label>
<select name="kwd" id="kwd">
  <option value="">選択してください</option>
<option value="13">槽</option>
<option value="14">ジャケット槽</option>
<option value="9">ボイラー</option>
  <option value="15">攪拌槽</option>
    <option value="16">熱交換器</option>
    <option value="17">塔</option>
     <option value="10">その他容器・構造物</option>
</select>
 
<input type="submit" class="submit" value="検索" />
</form>


<form method="get" action="<?php bloginfo( 'url' ); ?>">
<input type="hidden" name="search_type" value="production">
<input name="s" id="s" type="text" />
<input type="hidden" name="cat" id="cat" value="18">
<input id="submit" type="submit" value="検索" />
</form>


</div>


</div><!--wrapper-->
・検索キーワードをGETで受取。
・表示処理やページネーション
・検索用formを設置
上記PHPファイルを固定ページに埋め込み
フォームのとび先は固定ページのURL
検索結果表示PHPを作成
一番下にテキスト入力検索formもある。
こちらの飛び先を固定ページにすると404エラーになるので「/」として
ワードプレスのsearch.phpを利用するが、通常の検索とデザインが異なるため
専用のPHPをsearch.phpを複製して保存、振り分け処理をする。

作成方法は
「検索フォームごとにsearch.phpを振り分ける」を参照
https://in-novare.com/blog/archives/304