WordPressカスタマイズ・基礎知識TwitterFacebookB!HatenaLINELINECopyWordPressのコメント欄に、新しいコメントメタ(コメントのカスタムフィールド)を作ってオリジナルの入力欄を追加し、自由に入力&送信してもらって保存する方法を紹介します。レビュー評価を★で保存したり、相手の年齢や職業などのプロフィールを教えてもらったり、ユーザー属性を保存したり...使い方は自由自在です。追加できる入力欄は、POST送信できるものならなんでもOKです。通常のフォーム項目、text,textarea,checkbox,radio,select...などなどなでもOK。今回はtextとradioの方法のみ紹介します。functions.phpでコメントフォーム表示のフックを使い、入力項目を追加します。先に非公開ページなどでHTMLコードを作ってCSSも作成し、見栄えを確認してからHTMLコードをこの中に入れるのが良いでしょう。ContactForm7でフォーム部分HTMLを作る裏ワザフォーム部分のHTMLを自分のサイトに合わせて作成したいけど、普段フォームはContactForm7で作っていてHTMLは書けない...という方もいるでしょう。class="post-review">~</div>で囲っておきます。※必須項目にはせずシンプルにつくります。実際にはContactForm7のフォームとしては使いません。非表示ページなどでそのフォームを表示し、Chromeのデベロッパーツールで要素を調査します。class="post-review">を見つけてすべてのフォーム項目を囲っていることを確認したら、<div>の上で右クリックしてCopyします。class="post-review">があるはずです。その中身のHTMLのみ使います。Elementを選択したら、テキストエディタなどにペーストしてみましょう。すると、ContactForm7で出力してくれたフォームのHTMLが取得できます。無駄なHTMLコードも多いですが、普段からContactForm7を使っていてCSSもそちらで設定している方は、コンタクトフォームと同じようなデザインのコメントフォームが作れます。$defaultsが通常の入力欄の出力です。通常の入力欄の後に項目を追加したい場合は、順番を入れ替えてください。$add_content_2;にすればOKですね。追加したフォーム項目のCSSフォームのCSSは別にここで紹介する必要もないとは思いますが、一応置いときます。span{display:table-cell;vertical-align:middle;padding-left:3px;}span.answer-icon{display:table-cell;font-size:1.4em;}input[name=post-review-2]:checked+label.review-2-answer{color:#ff6798;}コメントのカスタムフィールドを保存するフォームが送信されただけでは、コメント情報に値が保存されません。コメントが投稿されたときと、編集されたときに保存するように設定します。}★でフォームの入力項目の名前を設定します。name="これ"...です。入力項目を増やすときは、上記コードをコピーして★部分を書き換えて//で区切ってあるところより前に追加します。管理画面のコメント一覧に追加した項目を表示する保存自体がされていても、管理画面などで確認できないと意味がないですよね。管理画面のコメント一覧に、行を追加して入力項目の中身を出力します。2);★のところに追加項目の名前(name属性=コメントメタの名前)、☆のところに表示用テキストを入力します。入力項目が3つ以上ある場合は、ここからここまでと区切ったところをコピーして増やしてください。チェックボックスなどの複数選択可の項目では、上記コードでは表示できません。ここからここまでと区切ったところのセットをこっちに入れ替えてください。}こちらのコードは面倒くさかったので動作確認しておりません。動作しなかった場合は教えていただけると助かります。コメント一覧でオリジナルの入力項目を表示する管理者が確認できればOKではなく、ページ内のコメント一覧でもオリジナルの入力項目を追加する場合は、ちょっと面倒臭いことをします。親テーマからcomment.phpをダウンロードして、wp_list_commentsと書いてある部分(コメント一覧出力の関数)を探し、入力項目を追加するための関数を読み込む設定をします。//入力項目を追加する部分の関数));そしたら、functions.phpに関数を登録しておきます。class="comment-review">~</ul>がオリジナルの入力項目を表示している部分のHTMLです。入力されてなかったら表示覧自体を表示しない場合は、<li>~</li>の外側にPHPで条件分岐を書きます。?>今回の2つ目はラジオボタンだったので、選択した部分を出力するために値で条件分岐しています。}チェックボックスではこんな感じです。//こう書き換えこれも動作確認してませんので、解説も雑ですみません。こっちの準備ができて更新してから、comment.phpを子テーマにアップロードします。さやお役に立てたらぜひシェアをお願いします。