5.5の機能強化:set_404メソッドの新アクション

説明

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つであり、いつか、こんな提案ができるようになりたいものだ。

【参考】Do an action when a 404 is triggered


最終更新 : 2020年08月12日 08:26


お勧め

is_email(2017年11月28日 更新)

mixed is_email( string $email [, bool $deprecated = false ] )
文字列がメールアドレス形式か調べる。

get_option(2019年11月14日 更新)

mixed get_option( string $setting [ , mixed $default = false ] )
パラメータ$settingで指定されたオプションの値を取得する。

has_filter(2018年5月27日 更新)

mixed has_filter( $tag, [ mixed $function_to_check = false ] )
WordPressタグにフィルターが登録されているか調べる。

make_clickable(2012年4月26日 更新)

string make_clickable( $text )
テキスト中のURLをリンクに変換する。

get_bookmark(2011年6月10日 更新)

mixed get_bookmark( mixed $bookmark [ , string $output = OBJECT [ , string $filter = 'raw' ] ] )
リンク情報を取得する。