ワードプレスドクターでは、ご希望のプラグインを弊社のPHPのスペシャリストが作成やカスタマイズいたします。この度は、プラグインを弊社で作成した依頼事例を二つご紹介しプラグイン作成の基本的なプログラムの書き方を公開いたします。
画像添付付きで、確認画面画有り、特定の投稿の作成者のメールアドレスに届くお問い合わせフォームプラグイン作成
クライアント様のご希望は、まず画像を添付できる問い合わせフォームで、かつ確認画面付き、さらにその投稿の作成者のメールアドレスに届くような問い合わせフォームをショートコードで挿入できるようにするプラグインを開発してほしいとの事でした。
こちらのご依頼を弊社では修正も含めて3日程で開発完了させていただきました。
ワードプレスでプラグインを作成するには、まずphpファイルの上部に下記のようなコメントを挿入します。
/** * @package Contact form WPD * @version 1.0 */ /* Plugin Name: Contact form WPD Description: 添付ファイル付きのコンタクトフォームをショートコード[wpdcontact] で出力します Author: WP Doctor Version: 1.0 */
@package,Plugin Name: プラグイン名を指定します
Description: プラグインの簡単な説明文です
Author: 作成者名です
@version、Version:プラグインのバージョンです
さらに今回のご依頼はショートコードで挿入との事でしたので、下記のフックをコードに追加しました
add_shortcode('wpdcontact', 'wpdcontact_output');
このコードはwpdcontactというショートコードで、wpdcontact_outputというfunction内の出力をするという意味です。
function wpdcontact_outputは下記のように普通にechoで内容を出力可能です(ここにコンタクトフォームの出力や送信コードを書けば良い訳です)
function wpdcontact_output() { echo "出力内容"; }
このプラグインをwp-content/pluginsフォルダに入れて管理画面にて有効化すると、[wpdcontact]と投稿に挿入するとその部分に「出力内容」と表示されます
管理画面の投稿作成画面に投稿者選択できるリストを表示するプラグイン
クライアント様のご希望は、複数の登録済みの寄稿者にさらに複数(最大12名)のカスタム投稿のstaff(名前や写真や経歴)が紐づいていて、そのstaffのどなたかを投稿画面で選択できるようにして、その投稿のカスタムフィールドに記録して投稿を表示する際に情報を呼び出せるようにしてほしいとの事でした。こちらのご依頼もワードプレスドクターでは3日程で完了させていただきました。
管理画面の投稿作成画面に、任意のフォームをプラグインで表示させるコードは基本的には下記のような物になります。
add_action( 'admin_menu', 'my_create_post_meta_box' ); function my_create_post_meta_box() { add_meta_box( 'my-meta-box', 'ボックス名', 'my_post_meta_box', 'post', 'normal', 'low' ); } function my_post_meta_box( $object, $box ) { echo "メタボックスの内容"; }
これで任意の内容を、投稿画面に表示できるようになります。また、投稿が保存される際にもフックを追加し、追加されたメタボックスの内容を、カスタムフィールドに保存します。
add_action( 'save_post', 'my_save_post_meta_box', 10, 2 ); function my_save_post_meta_box( $post_id, $post ) { $value=$_POST['aaa']; add_post_meta( $post_id, 'カスタムフィード名', $value, true ); }
もちろん実際のコードは、要件を満たす為に、ajaxやエラー処理、既に記録された物の呼び出しと反映処理等かなり複雑な物です。
ワードプレスのカスタマイズをプラグインとして作成すると、その内容のメンテナンスが容易となり、いつでも管理画面から機能を停止でき、また開発も個別の機能ずつ作成できる為複数の技術者のチームでのワードプレスの同時開発案件がとても効率的になります。このような開発案件がありましたらワードプレスドクターに是非ご相談ください