TokyoFacebookTwitterHatenaPocketWordPressの魅力といえば、便利なプラグインが揃っていること。必要な機能だけを自分でプラグインとして作ることもできます。カテゴリーをまとめて追加するシンプルなプラグインの作り方を紹介します。WordPressでWebサイトやブログを作るときにはカテゴリーを作成しますが、複数のカテゴリーを1つずつ作るのは面倒です。そこで、カンマで区切られた複数のカテゴリー名を1回のボタン操作でWordPressに登録するプラグインを作ります。作成するプラグイン(完成品のプレビュー)WordPressプラグインについてWordPressのプラグインは基本的に、既存のWordPressを変更したり新機能を追加したりするPHPのスクリプトです。Analyticsプラグインなどの非常に高度なものまであります。プラグインを作るのでしょう?WordPressを使っている開発者の多くが気付いているように、WordPressのコアファイルの改変は、WordPressの更新時に問題が発生したり、セキュリティの問題が生じたりするので避けるべきです。WordPressのコアを改変せずに、WordPressのサイトに新機能を追加する方法が「プラグイン」です。プラグインの開発を学ぶことで、WordPressの仕組みをさらに理解でき、WordPress開発者としての腕も向上します。プラグインの開発を学ぶプラグインのフォルダー構造は決まっています。すべてのプラグインは、フォルダーに1つないし複数のPHPファイルを持ちます。WordPressのフォルダーに、wp-contentがあり、その中に、pluginsフォルダーがあります。フォルダー構造は以下の通りです。はじめに:ファイルの作成プラグイン製作の最初のステップはファイルの作成です。WordPressのwp-contentフォルダーにあるpluginsフォルダーを開きます。pluginsフォルダー内に新規フォルダー「bulk-category-creator」を作成します。作成したフォルダー内に新規ファイル「bulk-category-creator.php」を作成します。フォルダー名とこのPHPファイルの名前を合わせます。テキストエディターを開いて以下のコードを貼り付けてください。*/プラグインのメインファイルのヘッダー部分にコメント記述でプラグインの説明、バージョン情報、製作者の情報、ライセンス情報を表記します。今回のサンプルではbulk-category-creator.phpファイルに書きます。以下はプラグインのメタデータです。Name:プラグインの名称を書きます。URI:プラグインがダウンロード可能な場所へのリンクです。Pluginsへ移動すると、プラグインリストに先程作ったプラグインが表示されます。コードの概要:カテゴリー一括作成プラグインコードを書き始める前に、WordPressのフックの基本を理解しましょう。WordPressにはアクションフックとフィルターフック、大きく2種類のフックがあります。本記事はプラグイン開発の基本なので深入りはしませんが、2つの違いは以下の点です。アクションフック:イベントが発生したときになにかをする場合に使います。新しい記事が投稿されたらツイートする、などですフィルターフック:データの加工や抽出が必要なときに使います基本が分かったところで、プラグインのコードを書きます。'rfr_CategoryCreatorMenu');上記のコードは関数rfr_CategoryCreatorMenuにadmin_menuをフックします。admin_menu関数は、WordPressの管理者ダッシュボードにサブメニューやメニューオプションを追加します。次に、以下のコードを書きます。'rfr_RegisterPluginSettings');}上記のコードを見ると、rfr_CategoryCreatorMenu関数を加えています。接頭辞(プレフィックス)「rfr_」が付いています。WordPressのカスタムプラグインは、常に関数名を一意にして、重複しないようにします。きれいなコードになり、別のプラグインが同じ関数名を使用して衝突するのを防ぎます。そのため、関数には独自の接頭辞を付けます。今回はrfr_としましたが、自分の名前や会社名の先頭3文字など好きな接頭辞でかまいません。関数rfr_CategoryCreatorMenuで、関数add_menu_pageを追加しています。add_menu_page関数は一番上の階層のメニューページを追加します。この関数にはいくつものパラメーターが渡されます。第2引数:ダッシュボードに表示されるプラグインの名前。Creator第3引数:プラグインの権限と制限。第6引数:ダッシュボードに、メニューとともに表示されるアイコンのURL。今回はWordPressに用意されているアイコンセット「dashicons-admin-plugin」を使用。Creator」が表示されます。admin_initアクションに別のフックを追加します。‘rfr_RegisterPluginSettings’);後ほど戻って作業をします。管理者ダッシュボードの外観をデザインします。気が付いたかもしれませんが、add_menu_page関数からrfr_CategorySettingsPage関数を呼んでいます。この関数を定義します。?><この部分に、プラグインの管理者ページの外観を定義します。言えば文字を入力するフォームを設置します。カンマ区切りで書かれたカテゴリー名を書きこむ入力欄です。通常のHTMLでフォームを定義して、テーブルレイアウトの中に入力欄を設けます。フォームの宣言の下にsettings_fieldsとdo_settings_sectionsを記述します。Creator」メニューを開くと以下のようになります。ダッシュボードにHTMLのフォーム要素を追加できました。プラグインの操作画面は完成です。残る作業は、カテゴリーを一括追加するためのプログラムです。);}上記PHPの詳細を解説します。explode(',',$trimmed);$returnedStrには、フォーム要素のテキスト入力欄に入力された値が入ります。$trimmedには、入力された文字列の左右の余計な空白を削除した値が入ります。PHPのexplode関数は、カンマ区切りで表される値を、$categories_array変数(配列)に変換します。次にforeachのループで、$categories_array変数の中身にアクセスします。}}このループで$categories_array配列内にある各値を取り出します。$catStringには$valueの値が入ります。'は、値を文字列型にするために付けます。‘category’);です。WordPressフックterm_existsにより、存在するカテゴリー名はリストに再度追加されません。カテゴリー「tall」がすでにあれば、この一括追加ツールで新たに「tall」を加えてもカテゴリーリストには追加されません。null)で、すでに存在するカテゴリー名か確認します。次に、create_categor関数に値を渡します。);}この関数では以下の処理をします。trim($value);PHPのtrim関数に$valueを渡して、空白を取り除きます。以下のコードで、スラッグで使うためのハイフンでつないだ(hyphenated)値を生成します。$trimmedValue);PHPのstr_replace関数で、文字列中のスペースをハイフンに変えます。Watch」なら、$hyphenatedValueは「Must-Watch」になります。ひとつのWordPressフックwp_insert_termで、空白を除去した値、分類、説明や上記のハイフン表記のスラッグなどを入れた配列を追加します。関数wp_insert_termは3つのパラメーターを取ります。第1引数:実際に追加される値(文字列)第2引数:必要な分類(taxonomy)。完全なコードは以下の通りです。Creatorへ移動し、カテゴリーをいくつか入力します。Shortを、カンマ区切りで入力欄に記入します。Categoriesへ移動すると、先ほど入力したカテゴリーがカテゴリーリストに表示されます。short」のスラッグを見るとハイフン区切りの「ultra-short」になっている点も確認してください。本チュートリアルではじめてのWordPressプラグイン「カテゴリー一括作成ツール」が完成しました。解説通りに作業を進めた読者の手元には、実際に動作するWordPressプラグインがあります。プラグインフォルダーをzip形式に圧縮すればプラグインを友人に配布できます。Technologies社の創業者です。チームメンバーもハードワーカー揃いで、スゴいWordPressサイトを作るため日夜奮闘しています。Twitterアカウント@ruforawebをフォローしてください。WordPress開発ブログの更新情報を配信しています。