エンジニアステップ

初心者エンジニア(1年目~3年目くらい)のための技術ブログ

WordPressでコメント入力欄から不要なウェブサイトとメールアドレスを削除する方法

WordPressのコメント入力欄のカスタマイズ方法をまとめました。

  • 不要なウェブサイトとメールアドレスを削除する
  • 名前、コメントの順番にする
  • コメントの文言を変える

などの対応をしています。

WordPressコメント入力欄のカスタマイズ

WordPressコメント入力欄のカスタマイズ後のイメージはこちら↓

f:id:alpacajp:20181020074105p:plain

※サイトはこちら↓

ブログ初心者の運営報告まとめ。PV、収益推移など | アルパカタログ

 

以下、やり方を順番に説明します。

CSSだけいじる方法もありますが、私はPHPを変更しています。

※一般的には、「functions.php」をいじると、ブログが動かなくなる…というリスクがあります。

 

初心者の方はCode Snippetsを使うのがオススメ。

CodeSnippetsの使い方とメリット。WordPressプラグインで「function.php」を変えない方法 - エンジニアステップ

 

ただこちらも下手な設定をすると動かなくなるリスクあるので、ご注意を。

※ちゃんとしたコードのコピペだけなら基本的には大丈夫ですけど…

 

アルパカタログ式のコメント欄のソースコード

アルパカタログ式のコメント欄のソースコードです。

コピペはご自由にどうぞ。

※一言「使いました!」と教えてもらえると、嬉しいです

 

remove_filter('comment_text', 'make_clickable', 9);
function invalidate_comment_tags($comment_content) {
if (get_comment_type() == 'comment') {
$comment_content = htmlspecialchars($comment_content, ENT_QUOTES);
}
return $comment_content;
}

add_filter('comment_text', 'invalidate_comment_tags', 9);
add_filter('comment_text_rss', 'invalidate_comment_tags', 9);
add_filter('comment_excerpt', 'invalidate_comment_tags', 9);

// コメントからウェブサイトとEmailを削除する
function my_comment_form_remove($arg) {
$arg['url'] = '';
$arg['email'] = '';
return $arg;
}
add_filter('comment_form_default_fields', 'my_comment_form_remove');

// 「メールアドレスが公開されることはありません。 * が付いている欄は必須項目です」の文言を削除する
add_filter( "comment_form_defaults", "my_comment_notes_before");
function my_comment_notes_before( $defaults){
$defaults['comment_notes_before'] = '';
return $defaults;
}

// コメント入力欄の表示順を変更する
function wp34731_move_comment_field_to_bottom( $fields ) {
$comment_field = $fields['comment'];
unset( $fields['comment'] );
$fields['comment'] = $comment_field;

return $fields;
}
add_filter( 'comment_form_fields', 'wp34731_move_comment_field_to_bottom' );


// 「コメントを残す」の文言を変更する
add_filter( 'comment_form_defaults', 'my_title_reply');
function my_title_reply( $defaults){
$defaults['title_reply'] = 'コメントはお気軽にどうぞ!';
return $defaults;
}

 

 これをCode Snippetsで「Add new」して貼るだけです。

※試していないけど「function.php」を直接編集して、このソースコードを追加するのでも多分大丈夫 

 

以下は、中身を理解したいエンジニアのための内容です。

※なんか貼り付けうまくいかずスペースが消えているのはご容赦ください…

 

ワードプレスコメント欄カスタマイズでやったこと

ワードプレスコメント欄カスタマイズでやったことを簡単に解説します。

 

コメント欄のオートリンク機能を無効化

コメント欄のオートリンク機能を無効化です。

基本的には標準プラグインのAkismetがあればOKなのですが、念の為。

remove_filter('comment_text', 'make_clickable', 9);

 

初心者エンジニアのために補足すると、

  • Clickable=クリック可能か?という意味
  • 「9」(内部で使われている状態値) 今回は無効を意味している

って感じ。

 

コメント欄のHTMLタグ使用や属性の変更を無効化

コメント欄のHTMLタグ使用や属性の変更を無効化します。

function invalidate_comment_tags($comment_content) {
if (get_comment_type() == 'comment') {
$comment_content = htmlspecialchars($comment_content, ENT_QUOTES);
}
return $comment_content;
}

add_filter('comment_text', 'invalidate_comment_tags', 9);
add_filter('comment_text_rss', 'invalidate_comment_tags', 9);
add_filter('comment_excerpt', 'invalidate_comment_tags', 9);

 

最初のfunctionは、HTMLタグをエスケープする関数です。

add_filter以降で、comment_text()に関数を適用しています。

 

コメントからウェブサイトとEmailを削除する

コメントからウェブサイトとEmailを削除する方法はこちら

// コメントからウェブサイトとEmailを削除する
function my_comment_form_remove($arg) {
$arg['url'] = '';
$arg['email'] = '';
return $arg;
}
add_filter('comment_form_default_fields', 'my_comment_form_remove');

url、email属性を無効化して、返しているのがわかりますね。

 

「メールアドレスが公開されることはありません」文言を削除する

「メールアドレスが公開されることはありません」文言を削除する方法はこちら。

// 「メールアドレスが公開されることはありません。 * が付いている欄は必須項目です」の文言を削除する
add_filter( "comment_form_defaults", "my_comment_notes_before");
function my_comment_notes_before( $defaults){
$defaults['comment_notes_before'] = '';
return $defaults;
}

これ「comment_notes_before」がポイント。

 

コメント入力欄の表示順を変更する

コメント入力欄の表示順を変更する方法はこちら

// コメント入力欄の表示順を変更する
function wp34731_move_comment_field_to_bottom( $fields ) {
$comment_field = $fields['comment'];
unset( $fields['comment'] );
$fields['comment'] = $comment_field;

return $fields;
}
add_filter( 'comment_form_fields', 'wp34731_move_comment_field_to_bottom' );

 

「コメントを残す」の文言を変更する

「コメントを残す」の文言を変更します。

// 「コメントを残す」の文言を変更する
add_filter( 'comment_form_defaults', 'my_title_reply');
function my_title_reply( $defaults){
$defaults['title_reply'] = 'コメントはお気軽にどうぞ!';
return $defaults;
}

 

 'コメントはお気軽にどうぞ!'のところは自由に変えてください。

 

以上、「WordPressでコメント入力欄から不要なウェブサイトとメールアドレスを削除する方法」でした。