wordpressExec-PHP愛好家向けショートコードプラグインの作り方Tweet僕もExec-PHPネタに便乗してみました。笑Exec-PHP愛好家さんの声をブログ等でみてみると、便利だからって声がちらほらあって、実はそこにかなり違和感を感じるんですよね。メンテナンス性とかも考えると、ぜんぜん便利じゃない。そんなわけで、Exec-PHPが便利に感じてる人は、ショートコードをマスターするとセキュリティとかメンテナンス性とか改善されるので、ぜひ挑戦しましょう。大体の手順は以下のような感じ。実際には1から3までは頭のなかですることなので、大した手順ではないです。人がさっと乗り換えられるように、WordPressプラグインのお作法を多少省略してます。この記事で作ったサンプルはここからダウンロード出来ます。プラグインの名前を決めるプラグインの名前は、アルファベットで適当に。既存のプラグインと名前がかぶらないように、公式ディレクトリやGoogleであらかじめ検索してみましょう。名前がかぶると結果的に既存のプラグインの偽物になっちゃうので、ブログ等で公開した時にいろいろと迷惑をかける事になります。プラグインのファイル名を決めるプラグインのファイル名は半角英数の小文字とハイフォンで。アンダースコアなどのハイフォン以外の記号は使用出来ません。(動作はしますが、将来公式ディレクトリに登録する際に名前を変えられちゃいます。ように単語と単語をハイフォンでつなぐのが一番理想的だと思います。プラグインのファイル名となります。ちなみにこのディレクトリ名が公式ディレクトリ上のプラグインと同じだと上書きされちゃうことがあります。my_shortcodeに該当する部分を決めましょう。これも他となるべく被らないように注意を。使う文字は、半角英数とアンダースコアが無難だと思います。ショートコードの名前は、プラグイン名やファイル名と一致する必要はありません。いう短かい名前にしてますが、こういうのはトラブルの原因になるかも。笑プラグインのファイルを作るここから実際にプラグインのファイルを作りましょう。以下に移動して、先ほど決めたプラグインのファイル名と同じ名前のディレクトリを作ります。wp-content/plugins/my-shortcodeディレクトリを作ったら、そのディレクトリの中に、phpファイルを設置してください。wp-content/plugins/my-shortcode/my-shortcode.php次に作ったファイルを開いて、WordPressにプラグインとして認識してもらうための専用のコメントを書きます。Shortcode*/公式ディレクトリに登録する際には他にもいろいろ書かないといけませんが、自分が使うだけなら、たったこれだけで動作します。ここまでできたら、WordPressの管理画面にあるプラグインのページに移動してみましょう。以下のように表示されてたらオッケー。ここからコーディングに入るので、有効化しちゃってください。実際にコーディングでは、さっそくショートコードを。以下はもっともシンプルなパターンのやつ。}以上が完了したら、投稿画面を開いて、以下のように入力してみましょう。以上で、サイト上を確認すると「わお!ショートコードって簡単じゃん!」ってのが表示されてると思います。してる部分を変数に放り込んで、returnするだけ。ショートコードは引数も受け取ることができます。}この場合は、エディターで以下のように入力します。foo="WordPress"]出力は以下のような感じですね。圧縮して本番環境にアップロード最後にプラグインをパッケージ化して本番環境にアップします。圧縮したファイルをプラグインの画面から新規登録して有効化するだけ。ショートコードの再利用について「Exec-PHPのほうが簡単だからなー...」って声をちらほら見かけますけど、WordPressのエディター内にコードを書くよりも、好きなエディターでコードを書けるんだから、こっちのほうがいろいろと便利に決まってますよね。置いとけば再利用も簡単だし。僕はだいたい以下のような感じで再利用してます。全部のクライアントに適用するショートコード集みたいなプラグインを作成して、そのなかに複数のショートコードを放り込む。(実際には使わないことも多い。してアップデートデザイン部分はテーマのCSSで適当に。改善してくうちに高機能化しちゃったショートコードとか、汎用性が高そうなものは公式ディレクトリに登録。公式ディレクトリに登録するのはやっぱ自動アップデートが便利ですから。メンテしやすい環境にするとわかりますが、1年以上たってからバグに気がつくことって頻繁にありますからね。関数を使ってエディターで入力されたPHPを実行するんですけど、ほれ、PHPのマニュアルにも「非常に危険」と。ショートコードがあるから「どうしても使わざるを得なくなった」ってわけではないはず。このプラグインは2009年から4年以上メンテされてないんです。これはたぶんWordPressにショートコードが実装されちゃったから作者さん本人がショートコードを使うようになっちゃったからだと思うんですよね。参考ショートコードに関するさらに詳しいことはCodexで。Codex書籍を執筆しました。