この記事の所要時間: 535

ワードプレスでコメント機能を使って掲示板などにしている場合、コメント欄がデフォルトのままだと

「名前」「メールアドレス」「WEBサイトURL」と「コメント」の項目しかありません。

ログインしている場合は「コメント」のみだったりします。
これだと・・・あんまりなので

「タイトル」を追加する方法を探しました!
WordPressのコメントに項目を追加する方法 – けしんかぎぃ~(ぷるきゃわの備忘録).
そして、上記の記事内にある
WordPants 第2号 WordPantsでもっと WordPress を楽しもう!ポップでパンツな電子出版雑誌.
こちらの「コメントの項目足してみるパンツ」
おぉ!すごい!
参考にさせていただきました!ありがとうございました。
で、私も私なりにそのキモとなる部分をまとめてみました。

————————————————————————

作業 その1

—- comments.php を変更する —-
wp_list_comments();←カッコの中にいろいろ入っている可能性もありますが・・・
の部分を下記に更新
wp_list_comments( array( ‘callback’ => ‘mytheme_comment’ ) );
作業 その2

—- functions.php に追加 (最終行からで可) —-

※ものによっては custom-functions.php など別ファイルを作ればいい場合もあります。このブログのテーマ「iTheme2」がそうです。

[php]

// コメントカスタマイズ
add_action( ‘comment_form_field_comment’, ‘add_title_comment_field’ );

function add_title_comment_field( $defaults ) {

$defaults = ‘


‘;

$defaults .= ‘

‘noun’ ) . ‘
‘;

return $defaults;

}
// 追加項目保存

add_action( ‘comment_post’, ‘save_custom_comment_field’ );

add_action( ‘edit_comment’, ‘save_custom_comment_field’ );

function save_custom_comment_field( $comment_id ) {

if ( !$comment = get_comment( $comment_id ) )

return false;

do_action(‘comment_form’, $post->ID);

$custom_key_comment_title = ‘comtitle’;

$get_comment_title = esc_attr( $_POST[$custom_key_comment_title] );

if ( ” == get_comment_meta( $comment_id, $custom_key_comment_title ) ) {

add_comment_meta( $comment_id, $custom_key_comment_title, $get_comment_title, true );

} else if ( $get_comment_title != get_comment_meta( $comment_id, $custom_key_comment_title ) )

{

update_comment_meta( $comment_id, $custom_key_comment_title, $get_comment_title );

} else if ( ” == $get_comment_title ) {

delete_comment_meta( $comment_id, $custom_key_comment_title );

}

return false;

}

// コメント記入欄

add_action( ‘add_meta_boxes_comment’, ‘add_title_comment_field_box’ );

function add_title_comment_field_box() {

global $comment;

$comment_ID = $comment->comment_ID;

$custom_key = ‘post_reviews_date’ ;

$custom_key_comment_title = ‘comtitle’ ;

$noncename = $custom_key . ‘_noncename’ ;

$get_comment_title = esc_attr( get_comment_meta( $comment_ID, $custom_key_comment_title, true ) );

echo ‘‘ . “\n”;

echo ‘


‘ . “\n”;

}
function mytheme_comment($comment, $args, $depth) {
$GLOBALS[‘comment’] = $comment;

$comment_ID = $comment->comment_ID;
$get_comment_title = esc_attr( get_comment_meta( $comment->comment_ID, ‘comtitle’, true ) ); ?>

  • id=”li-comment-< ?php comment_ID() ?>“>
    < ?php echo get_avatar($comment,$size='48',$default=' ‘ ); ?>

    < ?php printf(__('%s’), get_comment_author_link()) ?>

    < ?php if ($comment->comment_approved == ‘0’) : ?>

    < ?php _e('Your comment is awaiting moderation.') ?>

    < ?php endif; ?>