saikoの日記帳

技術
2020.01.31

WordPressの愚痴を書いた日記

ただの愚痴だよ

Gutenbergは本当にクソですよ、本当に。
何がクソってフックかけて操作できないからだよ。

Gutenbergって、投稿画面の上と右にそれぞれ色んな機能をもった管理バーがあるんですよ。

赤枠で囲ってる部分ね。
この部分、4.X系の時はfunctions.phpでフックかければ色々できたんですよ。
それが、5.X系になった途端にできなくなってしまったという。

なぜか…いやぼくもようわかってないのですが、多分主な構成がjsになったからじゃないかな。
どうやらWordPressの新エディタであるGutenbergは、ブロックとか諸々がReactで生成されているらしいのです。
つまり、jsでできてるってことですかね。
多分非同期での処理とかREST APIの実装とかそういうのを考慮してのことなのではないかとは思う。

これのせいでPHPによる操作、つまりはフィルターフックとかアクションフックとかなんかそういうのでわちゃわちゃできなくなってしまった模様。

「プレビューボタンを消して!」とか
「文書で不必要なものを削除して!」とか

そういうことができねえ!!!

ただ、別にできねえってわけじゃあなかったりする。
消すだけならぶっちゃけCSS使って無理やり削除することもできる。
ボタンの追加なら基本部分が全部jsでできてるわけだから、それで操作したりできる。

作業は100%完了したのですが、希望が見える90%ぐらいまでイライラしながら作業してました。
ほんとクソって思った。

希望が見えたのは「wp.domReady」という存在を見つけた瞬間。
これ、エディタを操作するために用意されてるらしく、要は「WordPressのDOMが用意されました」っていう瞬間を捉えられる。
つまり、これを使えば「WordPressが用意されたら指定のjQueryを発火させる」ことができる。

具体的には、wp.domReadyを起点にしてbeforeでプレビューボタンをもいっこつけることができるし、
removeで「パーマリンク」を削除することもできる。

cssでは限界があって、「テキスト設定という文字を持つDOM要素」とかって指定ができない。
jsは恐ろしいことにその辺もなんとかできてしまうため、超優秀なんですなぁ!

ということで解決案見つけてから即終了。
最後の10%ぐらいは晴れ晴れとした気持ちで仕事を終えることができました。

まあアレだよ、90%ぐらい無茶振りだろとか考えてたけど、終わってみれば知見が増えたとも言えるんだよ。
後付だけど。

マジで許さねえからな、昨日の残業3時間分返せよ。

同じカテゴリの他の記事

新着記事