WordPress オカリンメモ プログラミング

WordPressのプラグインの作り方というかHello World人生について

投稿日:2019年5月2日 更新日:

人生はHello Worldであり、Hello Worldが人生である。

これは自己啓発的な格言と理解していただいて構わない。

と言っても意味がわからないかもしれないので解説すると、Hello Worldというのはプログラミングをするときに一番最初に学ぶものの比喩だ。

つまり、初歩の初歩の初歩というような感じであり、人生は初歩である、というか、「千里の道も一歩から」でええやん、ということである。

人生に必要な大切なことなど数千年以上前からもう出尽くしている。

しかし使い古された言葉では心に届かない。

だから同じことをいろんな言い方で言うんだね。一日一歩、三日で三歩。

ただ、今回言いたいのは、初歩の初歩が一番大事なはずなのに、世の中のHow to系は全然初歩の初歩を大切にしていない、ということだ。

例えば初心者向けのプログラミングの情報などもはっきり言ってわかりにくい。

記事を書く方としても、初歩の初歩など書くのが面倒なのか、これぐらいわかって当然という期待するレベルが高いのか、ただ自分が理解していることを書いているだけなのか、いろんなパターンがあるだろうが、初歩なめすぎ。

ちなみに、プログラミングを何年もしている人でも、新しい言語やフレームワークなどを学ぶときは、初歩の初歩からちゃんと辿っていくのは同じで、進む速度が早いだけなのだ。

だから初歩の初歩の情報が不足していたら、どんなベテランでも詰まってしまう。

さらに重要なことは、初歩の次は二歩ではなく、初歩であるということだ。

初歩が終わったら、次は次の初歩である。

新しいことを学ぶと言うことはどんなことでも初歩なのだ。

というわけで本題。

例えばWordPressを使ってサイトを作ろうとなったとき、サーバーにインストールして、テンプレートをカスタマイズして、いろんなプラグインを入れて出来上がり、という初歩の段階があるが、次の段階としてはphpやWordPressの独自の関数などを利用してプログラミングをしていくことになるだろう。

もしWordPressでサイトをたくさん作りまくっていたとしても、プログラムを組んでカスタマイズするのが初めての場合は、初歩だ。

phpでいろんなプログラムを組んだ経験があったとしても、WordPressの仕様を理解しないと何もできない。

WordPressのプラグインはどのような仕様になっているのか知りたくなったとしよう。

インストール済みのプラグインをカスタマイズしたり、オリジナルのプラグインを作ったりしたいと思った場合の初歩の初歩の解説が欲しい。

しかしざっと検索してみたところ、初歩の初歩の解説と言える情報はほとんどなかった(英語の記事ではいくつか見つかったが)。

もちろん初心者向けの記事はいくつかあったのだが、ほとんどがとにかくプラグインの形にすることが目的となっていた。

違う違う。Hello Worldが欲しいのだよ。

でもたくさんの技術的な解説記事を読んでみて、なんとなくわかってきたことがある。

初歩の初歩だけだと内容が薄いと思われるから、「記事の価値を高めるためには、内容を充実させなければいけない」という使命感というかしょぼいやつと思われたくないという気持ち、あるいはGoogleの検索結果の上位を狙うためということもあるかもしれない。

わかる。

わかるけどそういうのをガン無視して、俺はただただ歩みを軽くするための記事を書こう。

Hello WorldにつぐHello Worldの繰り返しでどこまでいけるか。

本当に知りたいのはこういうこと、というものを書いていきたい。

WordPressのプラグインの作り方

まず、とにかくプラグインを作ってみよう。
ゴールはプラグインの一覧にオリジナルのプラグインが表示されること!

FTPソフトを使って空のphpファイルをプラグインフォルダにアップするだけだとどうなるか。

具体的にはhello_world.phpという中身は空のファイルをwp-content/pluginsにアップしてみた。

結果は。

何もおこらなかった。

そこでhello_world.phpに以下の記載をしてアップした。

結果はこうだ。

おおー。
できた。
これがWordPressのプラグインの本当のHello Worldだ。

で、ここまでできたら自由に次の一歩に踏み出せる。

例えば、ファイル名を変えたらどうなるんだろう。
hello_world.phpをhello_world_dayo.phpに変えてみた。
しかしプラグインの一覧画面の表記は何も変わらなかった。
ふむふむ。

ではhello_world_dayo.phpの中身を以下に変えてみると?

今度はプラグイン一覧のところの名前が”Hello Worldだよ”に変わった。

おおっ。

ではでは。
hello_world.phpもhello_world_dayo.phpもどちらもファイルの中身を同じにしてアップした場合どうなるのか。
今回はどちらとも*Plugin Name:Hello Worldだよ、のほうでアップしてみた。

するとプラグイン一覧のところに”Hello Worldだよ”が二つ並んだ!

おおおっ。

こんな感じで一歩一歩進めていくと自分でどんどん進めていける。

しかし。

ここで振り返ってみよう。

自力ではこれは導き出せるわけがない。

これはどこから出てきたの?

まあ、ネットで「WordPress プラグイン 自作」とでも検索すればなんとなく辿り着けそうではある。

今回は公式にCodexをみてみよう。
WordPress Codex 日本語版 – プラグインの作成

まあ、こういう記載になるわな。

こうなると、どれが必須項目なのかわからない。
とにかくプラグインの一覧にプラグイン名を表示させるところまでをするための最低限必要なことが知りたいのだ。

実験の結果、Plugin Name: (プラグインの名前)だけでよかったよね。

こういう感じで、世の中の情報は過剰になっている。
WordPressもそうだが、なんでも必要のないものがどっさりと混じっているのだ。
そこで自分が知りたいところの最低限必要な必須項目だけになるまで、無駄なものを削ぎ落とすという勉強方法はとても大事。

初歩を学んだ場合、次の一歩を踏み出す前に、

「あれ?足を一歩前に出す時、俺、腕はどうしてるんだっけな?」

こういう発想を身に着けるのが一流のアスリートへの道だろう。
フォーム大事だもんね。

しかし、いちいち、一歩一歩こんなこと気にしながらいきていたら、全然先に進まなくて楽しくないじゃん、という気持ちもある。

そこで、「モチベーション第一」であることも忘れてはいけない。

もし一歩踏み出す時のフォームなど気にならず、とにかく前へ、前へ、というときは、フォームなど気にしてはいけない。
どんどん前へ進むべきだ。

そうやってめちゃくちゃなフォームで前に進もうとしているタイミングで、

「おまえのフォームはめちゃくちゃだ。」

と先輩ヅラしてマウンティングをとってくる人もいるだろう。

そんなものは無視。

人にはやりたいことをやれるタイミングというものがある。

人より先にフォームの大事さを知ったから、フォームがめちゃくちゃな人に対して、意見を言いたくなる気持ちもわからんではないが、「先輩、僕、正しいフォームで駆け巡りたいんです。教えてください。」と言われたら教えてあげればいいのであって、楽しそうに走っている少年にいちゃもんをつけるのは罪である。
死刑にしたいぐらいだ。

で、いざ、正しいフォームを知りたくなって調べてみると、全然肝心なところが書いてなかったりする。

そんなときは、自分で自分のHello Worldを作っていくしかない。
幸い、プログラミングの世界は他の世界と違って、テストをしてみることができるので、とても簡単だ。

他の業界では、実際に試せるチャンス自体が少ないことも多いし、そもそも正しい答えがはっきりしないままの世界も非常に多い。

そういう意味ではプログラミングはめちゃくちゃ簡単だ。
簡単だが、やることが多いので、大変な世界ではある。
が、簡単だ。
これからもっともっと簡単になっていくだろう。
プログラミングというのはどこまで行っても目的にはならない。
何かの手段だ。
手段の難しさというのは欠点である。

何かを手に入れるときに、手に入れるのが大変だから価値があるように見えるものがあるが、
それは本当の価値ではなく、幻想だ。

ちゃんと一歩一歩歩んできた人にとって、夢とは現実である。

例えばドラムが叩けるようになりたい!という夢があったとして、寝て起きたら叩けるようなっている、というのは夢がかなったとは言わない。

まず、スティックの握り方、振り方、ペダルの踏み方からはじめて、一歩一歩近づいていくだろう。
そして、バンドで初演奏、という日が来たとしよう。
それはドラムの練習を始めた日の夢が叶った日ではあるが、初演奏の日の前日からすればただの現実の一日にすぎない。
つまり、スティックの握り方を覚えた日の次の日に、8ビートの基本のリズムを叩いてみたときと同じ現実だ。

初演奏で最初の夢が叶ったとしよう。
で、終わり?

もう一回やる?

他の曲練習する?

どれでもいい。自由だ。

好きな次のHello Worldを見つければいい。

人生はHello Worldであり、Hello Worldは人生だから。

ところで、このタイトルしかないプラグインを”有効”にしたらどうなるか、気にならないだろうか。
もちろん何か挙動がおかしくなったりすることはないが、何も起こっていないのだろうか。

WordPressのプラグインの有効、無効の違いはあるわけだから、何も動きはなくても、この俺のHello Worldが有効になった証がどこかに刻まれているはず!

というわけで、答えはデータベース上に書き込まれる、が正解。

プラグインを作るからにはデータベースを操作することもあるだろう。
これをきっかけにデータベースを見てみるのもいいと思う。
Hello Databaseだ。

WordPressのデータベースの中身を初心者が見る場合、phpMyAdminがいい。
もしSQLを勉強したい場合もphpMyAdminで画面から操作すると、その操作のSQL文を表示してくれるのでわかりやすい。
いきなりターミナルからやらせるパターンが多いが、DBの全体像がイメージしにくいのでやめたほうがいい。

optionsテーブルのoption_nameを調べると、active_pluginsというオプション名があり、そこにa:1:{i:0;s:15:”hello_world.php”;}というような値が入っている。
ちなみにすべてのプラグインを無効にすると値はa:0:{}となる。

このaとかiとかsはどういう意味なのか、どこにも説明はない(と思う)。
こういうものは自分で試して確認するしかないのだ。

まあ、もったいぶる必要もないので説明するとaは有効になっているプラグインの数、iは配列の添字で、sはプラグインのディレクトリ、ファイル名の文字数だ(/や拡張子も含む)。

こんなこと知ってどうするのかというと、初心者のうちはほとんど意味はないが、なんか一度見たことがある、という経験の積み重ねがあとで結びついてスパークするので、今は点と線でいうところの点を作ってるんだな、と思っておけばいいと思う。

スポンサーリンク

-WordPress, オカリンメモ, プログラミング

執筆者:

関連記事

vue.jsで回数を指定して配列を回す方法

vue.jsを使ってバインドした配列を表示する方法を公式のリファレンスを調べると、以下のようにある。

ただ、これだとitemsに格納さ …

パーソナルモビリティが気になるけどどうなっていくんすかね

http://www.toyota.co.jp/jpn/tech/personal_mobility/ ↑これトヨタのパーソナルモビリティのサイトなんですけど、どう思いますか? ドローンとかVRとか新 …

【エスパー魔美】衝撃の問題作『リアリズム殺人事件』についてVol.4

【エスパー魔美】衝撃の問題作『リアリズム殺人事件』についてVol.3の続き この『リアリズム殺人事件』は原作よりアニメ版の方がよく出来ているように感じているが、原作も素晴らしい作品であることは間違いな …

VALU、ヒカル騒動の結論

まずあのVALUヒカル騒動の結論としては、どちらも違法性があることをしたとは言えない。 さらにヒカル側はVALUの規約違反すらしていない。 つまり何も問題はなかった、というのが実情だ。 いや、問題はな …

【エスパー魔美】衝撃の問題作『リアリズム殺人事件』についてVol.3

【エスパー魔美】衝撃の問題作『リアリズム殺人事件』についてVol.2の続き 『リアリズム殺人事件』は中盤以降から原作とアニメでは全く話が違ってくる。 今回は原作について見ていこう。 原作版の中盤以降の …

行動派VS思考派とかって意味ある?

NYT記事「レイプ」「執行猶予付き判決」を誤訳した女性に、池内恵先生が誤訳を指摘したら、他の人達から噛み付かれまくってる これについて何か言おうかな、って思ったんだけど、 意外と話の裾野が広がりすぎて …

【エスパー魔美】衝撃の問題作『リアリズム殺人事件』についてVol.6

【エスパー魔美】衝撃の問題作『リアリズム殺人事件』についてVol.5の続き 原作をアニメ化するとき、出来る限り忠実に原作を再現しようとすることが多いと思うのだが、まれに原作からストーリーを大きく変えて …

人気のページ

アーカイブ


TOP