この記事は最後に更新してから1年以上経過しています。

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


お勧め

add_magic_quotes(2020年8月13日 更新)

array add_magic_quotes( array $array )
配列の文字列をスラッシュでクォートする。

image_downsize(2014年7月13日 更新)

mixed image_downsize( int $id [ , mixed $size = 'medium' ] )
アイキャッチ画像の縮小イメージ情報を取得する。

_e(2018年5月27日 更新)

void _e( string $text [ , string $domain = 'default' ] )
現在のロケールに応じた翻訳テキストを表示する。

wp_filter_oembed_iframe_title_attribute(2019年5月14日 更新)

string wp_filter_oembed_iframe_title_attribute( $result, $data, $url )
oEmbedのHTML(iframe要素のtitle属性値)に対してフィルター処理を行う。

wp_is_ini_value_changeable(2018年5月27日 更新)

bool wp_is_ini_value_changeable( string $setting )
PHPの設定値が変更可能か調べる。