特定のカスタムフィールドを持たないページの検索
-
特定のカスタムフィールドを持たないページを検索する方法です。
function pre_get_posts_filter($query) { if (!$query->is_admin && $query->is_search) { $query->set('meta_query', array(array('value' => '', 'compare' => 'LIKE'))); } return $query; } function posts_where_filter($where = '') { global $table_prefix; if (isset($_GET['s'])) { $where .= " AND (ID NOT IN (SELECT ID FROM ". $table_prefix. "posts INNER JOIN ". $table_prefix. "postmeta ON post_id = ID WHERE meta_key LIKE 'カスタムフィールド'))"; } return $where; } add_filter('pre_get_posts', 'pre_get_posts_filter'); add_filter('posts_where' , 'posts_where_filter' );
方法を検索したところ、見つからなかったのと、探している人もけっこういるようだった
ので投稿いたしました。
また、あまり WordPress の仕組みを理解しないまま書いています。指摘等がありましたら
ご指導いただけるとうれしいです。
2件の返信を表示中 - 1 - 2件目 (全2件中)
2件の返信を表示中 - 1 - 2件目 (全2件中)
- トピック「特定のカスタムフィールドを持たないページの検索」には新たに返信することはできません。