ブログ
【WordPress】 記事検索クエリのフック
記事検索時のクエリに独自の条件を指定したい場合のフックは下記の通り。
※custom_~ のところは任意の関数名です
・JOIN
add_filter('posts_join', 'custom_join' );
・WHERE
add_filter('posts_where', 'custom_where' );
・ORDER BY
add_filter('posts_orderby', 'custom_orderby' );
カスタムフィールドで並び替えをしたいような場合は
① JOINのフックで$wpdb->posts のIDと、$wpdb->postmeta のIDをINNER JOIN
② WHEREのフックで$wpdb->postmeta のmeta_key で絞って
③ ORDER BYのフックでcase文をつかって並び替え
といった感じ。
WordPressの仕組みを使うのもいいですが、わかる人は直接SQL文を編集してしまうやり方も。