【第三回】【完結編】WordPressでよく使われるフォーム(MW WP Form)をコメント機能として利用した話

MW WP FORMとは?

MW WP Form — WordPress Plugins

 MW WP Formは、WordPressを使用したサイトでお問い合わせフォームや応募フォームなどの「フォーム」を簡単に作れるWordPressのプラグインです。より「MW WP Formを使ったコメント機能」をご紹介しています。

おさらいとして求められる仕様を記載します。

求められる仕様。

01.コメントには確認画面がほしい。
02.コメントを行った場合、サイト管理者と入力者それぞれにメールが届くようにしてほしい。
03.メールについては、サイト管理者・入力者それぞれ違う内容のものを送るようにしたい。
04.コメントにカスタムフィールド的なものを入れたい。
05.コメントと記事を連動させたい。
06.コメントに画像を入れるようにしたい。
07.コメントの入力に必須や任意の項目を作りたい。
08.コメントが入た際に、掲載するかしないかの判断ができるようにしたい。
09.コメントの入力項目(選択式)に独自に作った分類(更新可能なもの)というのを反映したい。
10.コメントが入ったときに、独自に作った分類のカウントを増やす機能を作りたい。
11.この独自のコメントは、投稿(記事作成)のときに入れるものとしたい(タグ的なイメージ)

この内、08をクリアにする方法とサイトに表示するプログラムを前回の記事でご紹介しました。

関連記事

今回は、最終章!
前編にて作成したフォームを出すという方法をご紹介しながら、
残りの09以降どうやって対応していったのかをご紹介していきたいと思います。

  

 

更に追加された仕様…

08の作成が終了した頃…クライアントより新たに

12.コメントが入った際に記事の更新日を変更して欲しい。

という追加注文が来ました。

とはいえやることは変わらない…眼の前にある一つ一つの壁を乗り越えていくだけ。

そこでまず、09から着手することにしました。

Step:04 独自に作った分類を作成する。

前編にて作成した際に入っていたgenreというものに独自に作った分類(タグとカテゴリーの間のような感じのもの)を作って反映していくというのがミッションとなります。

その際この独自に作った分類をどうしたものかと思っていると…WordPress Codexサイトに

カスタム分類
https://wpdocs.osdn.jp/%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%A0%E5%88%86%E9%A1%9E

というものを発見!!この中にあるプログラムを参考にして作ってみたのがこちらです。

<?php
function genre_init() {
// 新規分類を作成
register_taxonomy(
'genre',
'post',
array(
'label' => __( 'ジャンル' ),
'rewrite' => array( 'slug' => 'genre' ),
'capabilities' => array(
'assign_terms' => 'edit_guides',
'edit_terms' => 'publish_guides'
)
) 
);
}
add_action( 'init', 'genre_init' );
?>

こちらをテーマ内のfunction.phpに入れてみて下さい。下図のような投稿画面に新しく分類が出てきたと思います。


また、この分類は、カテゴリーと同じ用に追加・削除・編集ができるようになっています。

Step:05 独自に作った分類をフォームの項目として使用する。

先程作った分類(genre)をフォームに反映させるためにまたプログラムを作っていきます。
ココで利用するのがMW WP Formのフィルターフックです。今回使用するフィルターフックはこちらです。

mwform_choices_mw-wp-form-xxx

こちらを使って作ったプログラムがこちらです。

このプログラムをfunction.phpに入れると、フォームに

このように選択フォームが反映されると思います。この機能意外と他の案件などで使えるので覚えておくといいかもしれません。

Step:06 分類のカウントと更新日の調整を行う仕組みを作る。

最後に、

10.コメントが入ったときに、独自に作った分類のカウントを増やす機能を作りたい。

12.コメントが入った際に記事の更新日を変更して欲しい。

という2つの要件を満たすプログラムを考えていたのですが…翌々考えてみると

「コメントを許可してもいないのにデータを変更するというのはどうも腑に落ちない。」

ということで、上記を

10.コメントを許可したときに、独自に作った分類(カスタム分類:ジャンル)のカウントを増やす機能を作りたい。

12.コメントを許可したときに、記事の更新日を変更して欲しい。

と変更する提案を行い、クライアントも納得をしたことで10・12を作るプログラムを考えました。

その再利用したのが

mwform_contact_data_save-mwf_xxx

のアクションフックです。こちらを利用して、「編集画面にて、掲載許可として更新処理が行われたときに10・12が発動する」というようにプログラムを作成しました。

こちらを使っているfunction.phpに貼り付けていただければ、実装ができるようになると思います。

今回解説としてすべてfunctionで記載していますが、

実際に実装する際はデータベースも使っているので
できれば、classを使い、private functionにて実装する。

ということをしたほうがしっかりとしたプログラムになると思います。

まとめ

長々と続いて解説を行いましたが…

MW WP Formとしての活用方法というのはこれだけでなく色々と使えることがあると思います。

今回は「コメントとして利用する」ということで解説を行っていましたが、

また別の機会にこういったカスタマイズでできることを紹介していければと思います。

長い間ご覧いただきありがとうございました。

この記事と同じカテゴリの記事