2022年03月26日
Actionフック:pre_get_posts
アクションフックの pre_get_posts は、メインクエリ: query_posts() が実行される時にフックされます。
query_posts()のDBからの抽出条件や並び順を変更したい時に利用します。
1.このアクションフックの基本形
基本系は下記になります。
function ○○(){ if (条件指定){ set_query_var(); // 検索条件を変更します。 } } add_action('pre_get_posts', '〇〇' );
■'pre_get_posts'に参照変数はありません。
■条件指定は 判断関数 で指定します。
■検索条件は set_query_var() で設定します。
注意
query_posts()は色々な所で利用されています。
よって「条件指定」を間違えると、カテゴリ表示画面では良かったが、ダッシュボードの投稿一覧の並び順が変わってしまった!等の問題を起こす事があります。
よって、この「条件指定」には注意をして下さい。
事例
下記はこのサイトで設定している設定です。
function my_query() { if(is_search()){ set_query_var( 'post_type', 'post'); // 検索表示は投稿文書に限定します。 } } add_action( 'pre_get_posts', 'my_query' );
■検索の基本は投稿ページと固定ページです。これを投稿ページに限定しています。