こんにちは、WPホームページ研究所の運営サポートチーム(@WP_LABO)です。
お客様から「コメント回りのカスタマイズ依頼」があって担当していたスタッフからヘルプをもらったので一部だけ対応させていただきました。下記では追加した機能をカンタンに解説いたします。
目次
名前が空でコメントに書き込まれた時の匿名や名無しを変更する方法
状況を確認するとコメント書き込み時に名前が空の場合に指定文字を表示させたいとのこと。ワードプレスではコメントに名前が存在するかどうかを判定している関数があります。下記がその記述内容ですね。
function get_comment_author( $comment_ID = 0 ) {
$comment = get_comment( $comment_ID );
$comment_ID = !empty( $comment->comment_ID ) ? $comment->comment_ID : $comment_ID;
if ( empty( $comment->comment_author ) ) {
$user = !empty( $comment->user_id ) ? get_userdata( $comment->user_id ) : false;
if ( $user ) {
$author = $user->display_name;
} else {
$author = __( 'Anonymous' );
}
} else {
$author = $comment->comment_author;
}
return apply_filters( 'get_comment_author', $author, $comment_ID, $comment );
}
実行ファイルは「/wp-includes/comment-template.php」。記述箇所は24行目です。
WordPress本体に手を加えずカスタマイズするには?
方法としては2つあります。1つはコメントの名前に元から既定値を入れておく方法。そして2つ目がコメントの名前には何も値をセットせずに空白だった場合を判定して後から値を変更するという方法です。
1. コメントの名前に元から既定値を入れておく方法
もし元々名前をセットするなら下記でOK。デフォルト値を「山田 太郎」に設定。
/* コメントの名前欄に既定の名前をセットする */
function default_value_set_comment_author_name( $name ) {
if ( $name['comment_author'] == '' ) {
$name['comment_author'] = '山田 太郎';
}
return $name;
};
add_filter('wp_get_current_commenter', 'default_value_set_comment_author_name');
下記が実際にカスタマイズした画面です。
ただ、運営面で考えると問題があります。
・すでに文字がセットされているのでユーザーによっては戸惑う原因になる
・入力されてる値(山田 太郎)を削除してから空で投稿される可能性がある
実際は「名前なし」とか「名無しさん」といった名前をセットしておけば誤解も最小限に抑えられそうですね。
2. コメントの名前が空白だった場合を判定して差し込む方法
下記はコメント時に名前が空で投稿した際に表示される「匿名」を置き換える方法。
/* コメント時に名前が空白だった場合に値を指定する */
function set_change_anonymous_empty_comment_author( $author, $comment_ID, $comment ) {
if ( empty( $comment->comment_author ) ) {
$author = __( '山田 太郎' );
}
return $author;
}
add_filter( "get_comment_author", "set_change_anonymous_empty_comment_author", 10, 3 );
以下の書き方でもOK。引数が1つのバージョンですね。
function set_change_anonymous_empty_comment_author( $author ) {
$comment= get_comment( $comment_ID );
if ( empty( $comment->comment_author ) ) {
$author = __( '山田 太郎' );
}
return $author;
}
add_filter( 'get_comment_author', 'set_change_anonymous_empty_comment_author' );
今回のカスタマイズでは「2」を採用。サイトの運営状況次第ではそれぞれを併用しても良いかもしれません。
まとめ
本日は「コメント時に名前が空白で書き込まれた時の既定値を条件分岐で変更する方法」を解説させていただきました。
やはりカスタマイズも大規模改修になると複数スタッフで同時に進行するのが効率的ですね。予算上では機能実装をお断りせざるを得ないといった状況だったので今回は急遽特別にヘルプすることになりました。
ぜひご参考くださいませ。
最新式の無料プラグインを事前公開
WordPressは公式サイトに登録済みのプラグインだけで全機能を補足しきれません。当サイトでは使いやすさを追求した魅惑的なプラグインを無料でダウンロードいただけます。運営ホームページのマーケティング力をさらに高めるチャンスです。まずは無料でDLしてお試しくださいませ。
→ 改良されたプラグインを確認する