wordpress「pre_get_posts」の設定一覧

「pre_get_posts」フックを検索で使う場合の処理まとめました。

検索機能を付ける場合によく利用

「pre_get_posts」は要するに「そのページで出力する投稿一覧(メイン)を出力前に条件を操作する」フックです。

なので、$_GETなどで条件を受け取ることで、検索機能が実装できます。

<?php
//基本形式
add_action('pre_get_posts',function ($query) {
//何も指定しないと全ページのクエリに影響するので
//条件を指定して動作範囲を限定
  if (
is_admin()//管理画面を除く
|| !$query->is_main_query()//メインクエリ以外を除く 
) {
    return;
  }

//queryの操作内容を追加
  if ($query->is_post_type_archive('custom-posttype')) {
    $query->set('orderby', 'title');
    $query->set('order', 'ASC');
  }
});