WordPressのシステムで条件分岐を取得できるタイミング

私すなわち #hustlemouse で #Wordpress の独自テーマ「 #あさま 」を開発中なのは以前の投稿で紹介いたしました。 #クラシックテーマ としては概ねの完成を見たので、これを #ブロックテーマ に化けさせる試行をコツコツと行っております。(が、実は課題が多すぎて折れちゃいそうな気分です。)

今回、一つのブレークスルーを得ることができ、クラシックテーマ「あさま」にもフィードバックできましたので、備忘もかねて紹介いたします。
標題だけでは「なんのこっちゃ?」と思われるかもしれませんが、Wordpressシステム内の #PHP のソース上で #is_home() や #is_single() とかページ属性を条件分岐させたいときに使う関数がありますよね。これってブラウザからWordpressシステムが呼ばれてページが表示されるまでのどのタイミングで有効になるのかご存知でしたか?

恥ずかしながら、私は知りませんでした。
クラシックテーマではテンプレートのPHPに書込めばよかったのですが、ブロックテーマではfalseしきゃ返ってきません。どうしたものかと困りましたが、さんざんに検索しても情報に行き当たりませんでした。(あとで常識ではなかったのかと不安に…。)
というわけで、「プラグイン API/アクションフック一覧 – WordPress Codex 日本語版」(感謝。)を見て総当たりをかましました。
総当たりと言っても「 #init 」では早過ぎてダメなのは経験的に知っていましたし、「 #wp_enqueue_scripts 」以降は大丈夫なのだけど、ページを表示した後で遅すぎるのは調査済みでした。ですから、参考リストのフックが上から順番であることを信じて、その間で総当たりをかけました。まあでも、めんどくさいです。

結果!「 #wp 」でした。「WPオブジェクトが設定された後 (参照配列) 」とあります。よく読めば、当たり前の結果でしたね。(とほほ。)
といいうことで、次のように「wp」フックから関数を呼び出してis_home()やis_single()とかを利用して、表示するページの運用が可能となりました。

add_action('wp', '呼出す関数');
「Visial Studio Code」上の「wp」フックライン

それなら、クラシックテーマの方も同じにしてもよかろうとなり、無事に稼働することを確認、少しだけソースがスッキリしました。今現在のところ、クラシックとブロックの各テーマはだいぶ同じようなファイル構成とソースで開発が進んでいます。(続けばいーけどね。)

さて、本家さえもまだベータなブロックテーマの開発途上にあり、まだ先が長い印象です。そして情報が少ないことが、現下のもっともな障害です。おかげで脳内の理解深度が斑上になっており、とても不安です。早く脱したい。そかさ。

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください