メールでのお問い合わせはこちら、お問い合わせフォーム

2017年7月のスタッフブログ

1

Wordpressでサイトを構築する案件において、投稿に対するコメントを使用する要件がありました。

色々と調べて対応した内容を簡単にご紹介いたします。

今回の要件ではコメントにタイトルの項目を追加したいとのことでしたが、Wordpressのコメントにはタイトルの様な項目はありません。
ネットで検索すると、コメントにフィールドを追加する方法はいくつか見つけることができます。
themesフォルダにあるfunction.phpに、フィールドの追加と保存の処理など追加し、ダッシュボードのコメント編集でもフィールドを追加するところまで紹介されていました。

実際にはサイトの画面でコメントの返信、編集、削除まで可能にできましたが、今回はフィールドの追加のみのご紹介です。

フィールドの追加には「comment_form_field_comment」を使いましたが、記事を書きながら調べてみると「comment_form_defaults」を使った例もありました。

前者はコメント欄のテキストフィールドに、タイトルの入力欄を追加して返す方法。
後者はコメントで使用するフィールドの配列で、こちらにタイトル用の入力欄を追加する方法。
後者の方がスマートな感じがします。

入力情報の送信と保存は「comment_post」「edit_comment」を使い下記のタイミングで「add_comment_meta」「update_comment_meta」「delete_comment_meta」を実行。

・コメントがデータベースに保存される直前に実行する。
・データベース内でコメントが編集・更新された後に実行する。

code_20170713_01.jpg

記事のコメント欄には下の画像の様に、タイトルの入力欄が追加されます。
ソースコードが必要な方は検索すると見つかると思います。

r_comment_add01.jpg

ダッシュボードからのコメント編集でタイトル欄表示させます。
「add_meta_boxes_comment」で入力欄を追加します。

r_comment_add02.jpg

ここが本題ですが、コメントの編集方法はもうひとつあり、コメントの一覧表示からクイック編集でもコメントの編集が可能です。

r_comment_add03.jpg

こちらが通常のクイック編集の画面です。
追加したタイトルの入力欄がないので、更新するとタイトルが消えてしまいました。

r_comment_add04.jpg

ネットで検索してもコメントのクイック編集については、情報がなかなか見つけられませんでしたが海外のブログに情報がありました。

ただ、紹介されていたコードはwordpressのバージョンが古いのか、wordpress 4.8では名前のフィールドに値が入ってきませんでした。

ブログにも記載されていましたが、既存の入力欄が「wp-admin/includes/template.php」に記載されているので、そのコードを使って記述を変更すると問題なく表示されました。
名前フィールドのIDが変わっていたのようです。

code_20170713_02.jpg

参考のコードではコメント欄の上に「名前」や「メールアドレス」の入力欄がありましたが、テキストエリアの下にフィールドが配置されるように変更してみました。

r_comment_add05.jpg

情報がなかなか見つからないのは必要性があまり無いからなのかもしれません。
今回は情報が見つかって助かりました。

1