いざ、プラグイン作成!!
とりあえず材料は揃ったってことで、プラグインを作成したいと思います。
参考材料はプラグインの調査「試験問題・クイズ出題WordPressプラグイン「Quiz And Survey Master」の使い方!」を行ったときにまとめました。
「Watu Quizze」「Quiz And Survey Master」等の機能引用
|
①時間制限機能 |
②ランダム出題 | |
③出題数設定 | |
④回答のデータを保持、正解率を算出。 | |
⑤問題のショートコード化 | |
⑥自動で新規投稿を作成 | |
⑦問題のカテゴリ設定 | |
上記プラグインでできないこと | ①~④をユーザ側で選択、確認する機能 |
とりあえずこんな感じで、機能追加や修正は実装していく過程で発見されるだろうと高をくくって、ミニマムな実装を心がけます。
テーマとしては「操作と管理がお手軽!試験プラグイン」です!
試験問題系プラグインを2つほど触った感想として、管理者が設定できることは十分すぎるほど豊富な反面、回答者が選択できる余地がないように感じました(少なくとも僕が調べた範囲では当該機能は見当たらず)。
作成に必要な設定などは管理者で行って、回答に関することはユーザが自由に選択できるほうが、どちらも幸せになれるんじゃなかろうかと思うので実装してみます。
プラグイン名を決める
まずはプラグイン名を決めます。
後で変更はできますが、あとで変更するとソースコードの修正が発生する可能性があり面倒なので、最初に決めておくことが無難です。
そして命名の際に気を付けることがいくつか存在します。
①プラグイン名の重複を確認する。
僕が作るプラグインはあくまで独自プラグインとして商用利用する予定はありませんが、完成後修正などを経て公式プラグインをして申請する可能性も0ではありません。
そうなった時、もしプラグイン名が公式に既に存在する場合はプラグイン名と被る場合は変更をしなければなりません。
なので、作成前にあらかじめ確認を行いましょう。
https://wordpress.org/plugins/で既存のプラグインを検索できるので、命名予定のプラグイン名を入力し調べましょう。
②機能を明確に表す命名を心がける。
これももし公式にアップする場合ですが、理想のプラグインを探す場合、該当プラグインの機能全てを試すことは膨大な時間を奪う行為となります。
なので、あらかじめ対象を絞って検索を行うでしょう。その際にもプラグイン名は機能を端的に表現したもののほうが利用者の目に留まりやすいと思います。
③アッパーキャメルケースで命名する。
利用しているプラグインを見れば、アッパーキャメルで命名されていると思います。特に規約違反ということはないと思いますが、合わせない理由もないので他のプラグインに合わせます。
あと、プラグイン名に日本語は付けれません。他の詳しい命名規則についてはこちらを参照してください。
以上のことを踏まえて、これから作成するプラグイン名は「Free and Kind Program」に決定しました!(②を満たしている?ってのはノータッチで…)
プラグインファイルの作成
プラグインの名前が決まったので、さっそくプラグインファイルを作成していきます。
プラグインファイルって何?という疑問に関しては公式の説明を参照していただければと思います。
WordPressでプラグインを認識させるための流れは以下です。
①wp-content/plugins配下にプラグイン名のディレクトリを作成する。
必ずしも同名である必要はありませんが、プラグインをインストールしてディレクトリが作成される、という流れを考えると、利用者目線からも同名の方がわかりやすいでしょう。
ちなみに命名規約で指定はされていませんが、慣例としてディレクトリ名はすべて半角文字、スペースはハイフンに置き換えてます。
「free-and-kind-program」としました。
②ディレクトリ内にPHPファイルを作成する。
PHPファイルもプラグインと同名「free-and-kind-program.php」とします。
③PHPファイルの頭にプラグイン情報を記述する。
作成したPHPファイルにWordpressがプラグインと認識するための「プラグイン情報ヘッダー」というメタ情報を記述します。
僕が記述したのはこんな感じです。
/**
* Plugin Name: Free and Kind Program
* Description: 試験問題出題プラグインです。
* Version: 1.0
* Author: oyama
*/
プラグイン情報ヘッダーには、Plagin Nameさえあれば認識されますが、一般的には以下の項目を記述します。
Plugin Name |
プラグインの名前を記述します。
|
Plugin URI |
プラグインのインストールできるURLを記述します。
|
Description |
プラグインの紹介文を切右述します。
|
Version |
プラグインの現在のバージョンを記述します。
|
Author |
プラグイン制作者の名前を記述します、
|
Author URI |
プラグイン製作所のURLを記述します。
|
License |
プラグインのライセンスを指定します。
|
僕はとりあえずPlugin Name、Description、Version、Authorのみを記述しています。上記の記述でどうなるかというと…
記述した内容が管理画面のプラグイン設定画面に追加されました!
しかしこのままでは有効化してもなにも起きません。
ここからPHPファイルにフックと処理を記述して機能を増やしていきます!
ここまでが前準備
とりあえず下準備は以上で終了です。
プラグインの調査、技術検証、入れ物の作成、といった流れで行ってきました。
次回から実際にプラグインに機能を追加していきたいと思います。