※コピペの際にダブルコーテンションなど大文字になるため注意してください。
1.■■■検索入力画面のソース■■■
<form id="form" action="https://ドメイン.com" method="get">
<input id="s-box" name="s" type="text" placeholder="キーワードを入力"/>
<input type="submit" value="検 索" class="button">
</form>
2.■■■functions.phpに追記(カスタムフィールドも検索条件に含むカスタマイズ)■■■
※注意 $search .= "AND post_type = 'post'"; こちらのpostのタイプ名を変更する必要があります。 現状だと投稿のみ表示となります。
function custom_search($search, $wp_query) {
global $wpdb;
if (!$wp_query->is_search)
return $search;
if (!isset($wp_query->query_vars))
return $search;
$search_words = explode(' ', isset($wp_query->query_vars['s']) ? $wp_query->query_vars['s'] : '');
if ( count($search_words) > 0 ) {
$search = '';
$search .= "AND post_type = 'post'";
foreach ( $search_words as $word ) {
if ( !empty($word) ) {
$search_word = '%' . esc_sql( $word ) . '%';
$search .= " AND (
{$wpdb->posts}.post_title LIKE '{$search_word}'
OR {$wpdb->posts}.post_content LIKE '{$search_word}'
OR {$wpdb->posts}.ID IN (
SELECT distinct post_id
FROM {$wpdb->postmeta}
WHERE meta_value LIKE '{$search_word}'
)
) ";
}
}
}
return $search;
}
add_filter('posts_search','custom_search', 10, 2);
3.■■■検索結果画面カスタマイズ(search.php)■■■
<?php query_posts($query_string . '&cat=19'); ?> ※該当カテゴリーのみ表示 全て表示したい場合はカテゴリー指定を削除
<?php if ( have_posts() ) : ?>
<?php while ( have_posts() ) : the_post();$loopcounter++; ?>
<?php if(($loopcounter) %2 ==1){ ?>
出力したい項目を記述
※こちらのサンプルは奇数と偶数で左右表示を制御
<?php if(($loopcounter) %2 ==1){ ?></div><?php } else { ?></div>
</div>
<?php } ?>
<?php endwhile; ?>
以上でプラグインを使用しないで表示が可能です。