初めてWordPressプラグイン作ってみたけどお作法が大変だった話
今までfunctions.phpをどうにかこうにかいじくり回していたのが、気づいたらいつもfunctions.phpに汚く書きなぐってた内容をプラグイン化してしまいました。
けんちゃんです!
今日はそんなWordPressを初めて作ってみたけど案外大変だったお話。
WordPressプラグイン Admin Bar Toolsを作った
ざっくり言うとWordPressにログインしている時の管理バー(右上にこんにちは、○○さんって表示されるアレ)にPagespeed InsightsとかTwitter検索とかを一発でできるリンクを表示するプラグインです。
WordPressプラグイン「Admin Bar Tools」 | L'7 Records
Admin Bar Tools – WordPress プラグイン | WordPress.org 日本語
PSIで記事個別のスコア計測する時、Twitterでエゴサする時、Googleで「site:URL」でインデックス調べる時。
こういう時って一々個別記事のURLコピペすんの面倒じゃないですか。
なんで今まで新規のWordPressサイト始める時は自分でfunctions.phpに書いてたんですけど、「あれ、これちゃんとプラグイン化したら便利じゃね?」って事で作ってみました。
WordPressのお作法が結構大変
書いた内容自体は大して難しくなくて、思い立ってから多分2日ちょっとでだいたい出来上がったのかな。
それよりもWordPress独特のお作法の方が結構大変でした。
・国際化対応(多言語化)させるにはマークアップが必要
・WordPressコーディング規約が古い!
等々・・・
国際化対応はどうせ作るならやってみようと思った内容なんですが、一応今回英語と日本語に対応させてます。
で、もちろん公式のマニュアルを読み不明点は適宜ググって解決・・・なんですがいかんせん情報が古い事が多くて中々手間取りました・・・
特に公式ディレクトリのプラグインページのreadme.txtの内容、これの翻訳方法が全然わからなかった。
もう呆れるほど調べて、やっと今は基本的にオンライン上での翻訳が基本(プラグインに言語ファイル同梱しなくてOK)という情報を得られました。
それからWordPressのコーディング規約が中々古いことも手間取った一つですね・・・。
Qiitaに【VSCode×phpcs】WordPressコーディング規約の除外ルールを作るなんて記事も書いたんですが、特に納得行かなかったのが配列の短縮構文(array = [])がNGだった事。
2020年の今の時代にarray = arrya()とか書きたくないじゃないですか、ね?
って事でこのコーディング規約は除外しました。
それ以外は完全にWordPressコーディング規約に準拠しています、普段書かないDocコメントとかもちゃんと書いたよ!
ちなみにこれにあたって色んな有名プラグインのコード見たんですが、案外「コーディング規約?知らない子ですね」ってプラグイン多かったです・・・笑。
でもまあコードの綺麗さはユーザーには関係無いですからね、僕の場合は「よーし!どうせならコーディング規約に準拠しちゃうぞー!」ってノリなのでいい勉強になりました。
SVN・・・?
WordPressはリポジトリにSVN使ってるんですってね。
え・・・SVN・・・?Subversionってgitの記事でたまーーーーーーーーに比較対象になってるあれかい・・・?
ぐらい僕に馴染みの無いものだったので、これはマジで戸惑いました。
ググって見るとgitと共存できるとか、いや怖いとか色々情報が錯綜しててとりあえず僕は明確にファイルを分けました。
普段はLocal by Flywheelで作った環境直下で開発(gitもここ)
それとは別にsvnディレクトリをドキュメント直下に作る(svnはここ)
って感じの管理です。
更にGitHubでcomposer.jsonやら.gitignoreやら抜いたファイルをReleaseで出してるので超大変。
なのでこれもコマンド一発でsvnディレクトリ直下のtrunkディレクトリに一発コピー、同時にcomposer.jsonや.gitignoreみたいな不要ファイルを除外したzipを出力するってやつをPythonで書きました。
そのうちPHP版も作ってみたい(ただの趣味)
しばらくのんびりプラグイン作ってます
という事で初プラグイン制作、初公式ディレクトリ登録はWordPressという広く成長してきたコミュニティだからこそできたお作法が中々大変でした!
それでも初回やってだいぶ慣れたし、プラグインの構想もいくつかあるのでのんびり色々作ってみたいと思います。
みんなぜひダウンロードして、使った感想教えてくれよな!!!!!!!いや教えてください!!!!!!!!!
この記事が気に入ったらサポートをしてみませんか?