WordPress(ワードプレス)「コメント欄」に項目を追加する方法

11.04.16 00:05 | コメント(0)

「コメント欄」に項目を追加する方法

WordPress(ワードプレス)を利用して、会員制サイトやクチコミサイトを運営していると、「コメント欄」を変更したい場合があると思います。
WordPress(ワードプレス)初期の状態だと、「名前」「メールアドレス」「ウェブサイト」のみ入力出来るようになっています。 「コメント欄」に、その他の項目を追加をする場合は「php」ファイルや「functions」ファイルをカスタマイズすることで新しい「コメント欄」項目を追加することができます。 今回は「コメント欄」に項目を追加する方法をご紹介いたします。

初期のコメント欄

コメント欄
 1. 入力項目を追加
 2. 追加した項目を表示させる
 3. 追加した項目を管理画面に表示させる
 4. コメント一覧に追加項目を表示

入力項目を追加

最初に新しく項目「お住まいの地域(必須)」を追加するためのコードを追加します。 WordPress(ワードプレス)のトップディレクトリにある、「wp-comments-post.php」ファイルを編集します。 「wp-comments-post.php」ファイルに以下のコードを追加します。
【追加するコード】
//コメント項目追加
//お住まいの地域
$comment_area = ( isset($_POST['area']) )   ? trim($_POST['area']) : null;

入力項目を追加

入力項目を追加 上記の追加コードに続き、「必須」項目に入力が無い場合の表示を追加します。 「wp-comments-post.php」ファイル内から下記のコードを探します。

【デフォルトで表示されているコード】
if ( get_option('require_name_email') && !$user->exists() ) {
	if ( 6 > strlen( $comment_author_email ) || '' == $comment_author ) {
		wp_die( __( 'ERROR: please fill the required fields (name, email).' ), 200 );
	} elseif ( ! is_email( $comment_author_email ) ) {
		wp_die( __( 'ERROR: please enter a valid email address.' ), 200 );
	}
}
探した表示下部に新しく下記のコードを追加します。
【追加するコード】
if ( '' == $comment_area )
        wp_die( __('エラー: お住まいの地域を入力してください。') );

入力が無い場合の表示

入力が無い場合の表示

追加した項目を表示させる

次に先ほど追加した項目を表示させるためのコードを追加します。 wp-includesディレクトリにある、「comment-template.php」ファイルを編集します。 「comment-template.php」ファイルに以下のコードを追加します。

【追加するコード】
//コメント項目追加
if(get_comment_meta($comment->comment_ID, 'area', true)) printf( __( 'お住まいの地域:%s' ), get_comment_meta($comment->comment_ID, 'area', true) );
上記の追加コードに続き、もう一つ「comment-template.php」ファイル内にコードを追加します。 まず、「comment-template.php」ファイル内から下記のコードを探します。

【デフォルトで表示されているコード】
'author' => '

' . ' ' . '

', 'email' => '', 'url' => '

' . '

',
探した表示部分に新しく下記のコードを追加します。 【追加するコード】
'area' => '

' . ' ' . '

',

追加した項目を管理画面に表示させる

次に追加した項目を管理画面に表示させるためのコードを追加します。 themesディレクトリにある、「functions.php」ファイルを編集します。 「functions.php」ファイルに以下のコードを追加します。

【追加するコード】
//コメント項目追加
//コメント送信先
function add_comment_meta_values($comment_id) {
    if(isset($_POST['area'])) {
        $area = wp_filter_nohtml_kses($_POST['area']);
        add_comment_meta($comment_id, 'area', $area, false);
    }
}
add_action ('comment_post', 'add_comment_meta_values', 1);
 
//管理画面にコメント追加項目を表示
function manage_comment_columns($columns) {
    $columns['area'] = "お住まいの地域";
    return $columns;
}
function add_comment_columns($column_name, $comment_id) {
    if( $column_name == 'area' ) {
        $area = get_comment_meta( $comment_id, 'area', true );
        echo attribute_escape($area);
    }
}
add_filter( 'manage_edit-comments_columns', 'manage_comment_columns' );
add_action( 'manage_comments_custom_column', 'add_comment_columns',null, 2);

管理画面に項目を追加

管理画面に項目を追加

コメント一覧に追加項目を表示

次に追加した項目をコメント一覧に表示させるためのコードを追加します。 themesディレクトリにある、「functions.php」ファイルにコードを追加します。 「functions.php」ファイルに以下のコードを追加します。

【追加するコード】
//コメント一覧に追加項目を表示
add_filter( 'get_comment_author_link', 'attach_area_to_author' );
function attach_area_to_author( $author ) {
  $areas = get_comment_meta( get_comment_ID(), 'area');
  if ( $areas ) {
          foreach ($areas as $area)
            $author .= '(' . $area . ')';
     }
     return $author; //コメント者の後に続けて出力。
}

コメント一覧

コメント一覧
以上でWordPress(ワードプレス)「コメント欄」に項目を追加する方法です。
カテゴリ:WordPress(ワードプレス)構築と技術, カスタマイズ方法(WordPress), ブログツール【CMS】情報と技術

Facebookでコメントする

コメントする

おすすめの記事

Facebookの投稿
ウェブ制作技術 SNS・ブログ
おすすめウェブサイト
ウェブ制作のご注文は全国対応

北海道 青森 岩手 秋田 宮城 山形 福島 東京 神奈川 埼玉県 千葉 茨城 群馬 栃木 愛知 静岡 三重 岐阜 新潟 長野 山梨 石川 富山 福井 大阪 京都 奈良 兵庫 滋賀 和歌山 岡山 広島 鳥取 山口 島根 愛媛 徳島 高知 香川 福岡 佐賀 長崎 大分 熊本 宮崎 鹿児島 沖縄

PAGE TOP