読者です 読者をやめる 読者になる 読者になる

ITの隊長のブログ

ITの隊長のブログです。いや、まだ隊長と呼べるほどには至っていないけど、日々がんばります。CakePHPとPlayFrameworkを使って仕事しています。最近はAngular2をさわりはじめたお(^ω^ = ^ω^)

【WordPress】タイトルを検索する

WordPress PHP

スポンサードリンク

WordPressでタイトルだけを検索して表示する方法

検索結果用の固定ページを用意する

ここでは説明しません。そんな難しくないのでぐぐってね。 あと、パーマリンクを決めてあげる。※今回は「s」にしました。

用意した固定ページにコードを用意

あんまり良いコードではない(確信)だけど、これでいける。

あとパラメータが増えた場合とかで拡張もしやすいと思う。

<?php
  $_query_string = $_SERVER['QUERY_STRING'];
  $query_args = explode("&", $_query_string);
  $search_query = '';

  foreach($query_args as $key => $string) {
    $query_split = explode("=", $string);
    $keyword     = urldecode($query_split[1]);
    if ($search_query === '') {
      $search_query = $keyword;
    } else {
      $search_query = $search_query . ' ' . $keyword;
    }
  }

  query_posts(array(
    'post_type' => 'listing',
    's'         => $search_query
  ));

<?php if(have_posts()) : ?>
    <?php while(have_posts()):the_post() ?>
        <a href="<?php the_permalink(); ?>">
    <?php endwhile; ?>
<?php endif;?>
?>

formの用意

あとはformを用意してあげれば良い。クエリパラメータでssearchをkeyにしてしまうと、WordPressの標準の検索が動いてしまうので、それ以外にする。

<form method="get" action="<?php echo home_url('/') . 's/'; ?>">
    <input type="text" placeholder="検索" name="cs">
    <input type="submit" value="">
</form>