この記事は最後に更新してから1年以上経過しています。
説明
「WordPress 5.5 RC 2(以降RC 2)」が公開され、今日・明日には正式版がリリースされる。そんなWordPress 5.5 RC 2のソースコードを眺めていると、WP_Queryクラスのset_404メソッドにアクションが追加されていた。
はじめに、この記事は公開された5.5 RC 2をもとにしており、正式リリースの際に変更される可能性があることを予めお断りする。
WP_Queryクラスのプロパティ
>WP_Queryクラスはユーザーからリクエストされたページ向けの投稿情報を取得する際に使用されている重要なクラスである。取得した投稿情報を保持するほか、リクエストされたページがどんなページなのかをプロパティとして保持している。今回の記事に関連するのはその中の1つis_404である。
プロパティのis_404には、該当する投稿情報が見つからなかった場合(キーワード検索時などは除く)にtrueが格納され、一般的には is_404関数を使用して状態を調べる。
そんなプロパティのis_404だが、グローバル変数$wp_query(WP_Queryオブジェクト)から直接読み取ることができるだけでなく、書き換えることも可能である。
global $wp_query;
$wp_query->is_404 = true;
このように直接書き換えることはあまり褒められたものではないが、手軽さもあってついついやってしまいがちである。では、どのようにすべきなのかというと、プロパティのis_404をtrueに変更する場合はWP_Queryクラスのset_404メソッドが適任である。
global $wp_query;
$wp_query->set_404();
5.5ではこのset_404メソッドにset_404アクションが追加された。
do_action_ref_array( 'set_404', array( $this ) );
このアクションはデバッグ目的で追加されたもので、パラメータは自身のWP_Queryオブジェクトとなっており、その時の状況を詳しく把握できる。
これは5.5の開発者向けの変更点の1つであり、いつか、こんな提案ができるようになりたいものだ。
最終更新 : 2020年08月12日 08:26
関連
お勧め
get_next_image_link(2021年7月25日 更新)
wp_after_insert_post(2020年12月11日 更新)
wp_save_post_revision(2024年1月10日 更新)
wp_debug_backtrace_summary(2012年6月15日 更新)
nocache_headers(2018年5月27日 更新)