HippoBlog
Web開発に関する備忘録や
日々の雑記ブログ
  • #WordPress
  • 2019年7月10日
ENTRY TITLE

[wordpress] post_nameをlike検索してマッチした投稿を取得する

TEXT BY @hippohack@hippohack
TEXT BY @hippohack@hippohack
  • このエントリーをはてなブックマークに追加

標準メソッドがないぐらいなので、たぶん悪手だが必要だったのでやってみた。

global $wpdb;
$search_query = "SELECT ID FROM {$wpdb->prefix}posts WHERE post_type = 'series' AND post_name LIKE %s";
$like = '%'.preg_split('/-\d/', $post->post_name)[0].'%';
$results = $wpdb->get_results($wpdb->prepare($search_query, $like));

foreach($results as $key => $obj){
  $ids[] = $obj->ID;
}

$series_posts = get_posts([
  'post_type' => 'series',
  'order'=>'ASC',
  'post__in' => $ids
]);

特定のカラムで検索できるメソッドがあってもいいような気もする。ひょっとしたらあるのかも?

likeの条件やポストタイプなんかは適宜変更で。

参考

wordpress how to get post with like search


最後までお読みいただき、ありがとうございました。

ご意見などありましたら@hippohackへDMをお願いいたします。

  • このエントリーをはてなブックマークに追加