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


お勧め

username_exists(2018年5月27日 更新)

mixed username_exists( string $username )
ユーザ名が登録されているか確認する。

wp_constrain_dimensions(2016年8月17日 更新)

array wp_constrain_dimensions( int $current_width, int $current_height [ , int $max_width = 0 [ , int $max_height = 0 ] ] )
縦横比を維持した縮小サイズを取得する。

category_description(2018年5月27日 更新)

string category_description( [ int $category = 0 ] )
カテゴリーの説明文を取得する。

get_post_thumbnail_id(2020年8月19日 更新)

int | false get_post_thumbnail_id( [ int $post_id = null ] )
投稿情報にアイキャッチ画像(サムネイル)として設定されているアタッチメント情報のIDを取得する。

untrailingslashit(2015年12月12日 更新)

string untrailingslashit( string $string )
末尾からスラッシュ(/)を取り除く。