WordPress コメント提出した後に感謝/成功メッセージを表示する

先週の月曜日には WordPress ブログのコメントシステムをDisqusから WordPress 基本コメントシステムに変更しました。 WordPress 基本コメントを使うのでディスカスに比べて不便な点がいくつかありますね。

ディスカスはそれなりにまともなユーザー体験(UX)を提供することです。

  • コメントの作成者が自分のコメントを編集可能
  • 自分のコメントの他のユーザーが返信を取り付ければ、メールで通知を送信する
  • Disqusに登録してログインした状態でDisqusのコメントシステムを利用するサイトに簡単にコメントを作成可能
  • Disqusを介してユーザーが流入される(SEOに有利)

しかし、Disqusに付いコメントは、Googleに検索されますが、不完全な露出とします。 いくつかのブログでは、コメントは、Googleでよく露出されるが、私のブログでは、Disqusのコメントは、Googleに全く露出されていません。

[この記事は2018年に作成されましたが、最新バージョンの内容に合わせて修正して再発行されました。 ]

WordPress コメント送信後に監査/成功メッセージを表示する方法

今回のコメントを WordPress 基本コメントで変え、数日が過ぎると、既存のコメントが現在Googleでよく露出されています。 しかしDisqusを無効にしたためかDisqusを通じては全く流入がされずにいますね。

WordPress 基本コメントを使用する場合は、サイトの訪問者が多くなると一緒に増える招かれざる客があります。 すぐにスパムコメントですが。 アキスメット 同じプラグインを使用すると、効果的にスパムコメントをブロックすることができます。 このプラグインは、現在500万人以上のサイトに設置されて使用されています。

私はプラグインの代わりに WordPressで基本的に提供する 'コメントブラックリスト'機能を使用してスパムをフィルタリングしています。

しかし、スパマーが継続進化をして、完全にフィルタリングされていない。 それでもほとんどの迷惑なコメントは、すべてゴミ箱に移動しています。

WordPress スパムコメント

スパムコメントは、英語とロシア語、日本語では主に走らが、最近になって韓国語でされたスパムコメントも増えている傾向があります。

このようなスパムコメントのためにコメントを付けるすぐに公開されず、検討(Moderation)を経てコメントが投稿されるように設定しています。 コメントは承認を経て表示されるようにするには、 伝言板>設定>ディスカッション>コメントが見え前 オプションの「コメントは、手動で承認されなければします「チェックしてください。

WordPress コメント承認

このようにコメントが承認後に表示されるように設定した場合、コメント作成者がコメントを入力した後提出'をクリックすると、コメントがすぐに上がらず、メッセージが表示されず、コメントが正しく送信されたかどうか疑問に思うかもしれません。 だから、ある人は同じコメントをXNUMX回することもあります。

このような状況でのコメントを提出したとき、監査メッセージと一緒に承認を経て公開されることのメッセージを表示することを考慮してみることができます。

WordPressでコメント提出後に感謝/成功メッセージを表示する

WordPressでコメントを作成して提出した後、ユーザーにメッセージを表示するには、次のコードを使用しているテーマの関数ファイルに追加するようにします。 (なるべく子テーマを使用してください。)

add_action( 'set_comment_cookies', function( $comment, $user ) { setcookie( 'ta_comment_wait_approval', '1' ); }, 10, 2 ); add_action( 'init', function() { if( $_COOKIE['ta_comment_wait_approval'] === '1' ) { setcookie( 'ta_comment_wait_approval', null, time() - 3600, '/' ); add_a ', function() { echo "コメントが送信されました。ありがとうございます。 "; }); } }); add_filter( 'comment_post_redirect', function( $location, $comment ) { $location = get_permalink( $comment->comment_post_ID ) . '#wait_approval'; return $location; }, 40, 10 ); //ソース: wordpress.stackexchange

上記のコードをチャイルドテーマの関数ファイル(functions.php)に入れてみるとうまく動作しますね。

コメント提出した後に成功メッセージ

改良されたコード(2025年11月27日追加)

上記のコードは10年以上経過したコードなので、最新のPHPバージョンでエラーが発生する可能性があります。実際に上記のコードを適用すると、以下のエラーメッセージが表示されるという報告を受けました。

Warning: Undefined array key "ta_comment_wait_approval"

上記のコードの代わりに、次のコードを追加して問題が解決するかどうかを確認してください。

// 댓글 작성 시 쿠키 설정
add_action('set_comment_cookies', function($comment, $user) {
	setcookie('ta_comment_wait_approval', '1', time() + 3600, COOKIEPATH, COOKIE_DOMAIN, is_ssl(), true);
}, 10, 2);

// 댓글 승인 대기 메시지 표시
add_action('init', function() {
	// isset()으로 쿠키 존재 여부 확인
	if (isset($_COOKIE['ta_comment_wait_approval']) && $_COOKIE['ta_comment_wait_approval'] === '1') {
		// 쿠키 삭제
		setcookie('ta_comment_wait_approval', '', time() - 3600, COOKIEPATH, COOKIE_DOMAIN, is_ssl(), true);
		
		// 메시지 표시
		add_action('comment_form_before', function() {
			echo "<p id='wait_approval' style='padding-top: 40px;'><strong>댓글이 제출되었습니다. 감사합니다.</strong></p>";
		});
	}
});

// 댓글 작성 후 리디렉션
add_filter('comment_post_redirect', function($location, $comment) {
	if ($comment && isset($comment->comment_post_ID)) {
		$location = get_permalink($comment->comment_post_ID) . '#wait_approval';
	}
	return $location;
}, 10, 2);

※上記のコードがうまく動作しない場合は、下記のコメントで「舌」様が提示したコードでテストしてください。

フレーズは必要に応じて指定して表示できます。 「ありがとうございます」や上の図のように「成功的に送信されました」などのメッセージを表示したり、注意事項やその他の情報を一緒に表示してもかまいません。

参考までに WordPress 基本コメントに変えコンパクトなコメントフォームのためのウェブサイトのURLフィールドを削除して再ウェブサイトのフィールドを復元しました。 コメントをするとき、WebサイトのURLまで一緒に記入すると、他のユーザーがクリックしてサイトを訪問することができますので、SEOに役立つでしょう。 (スリムなコメントフォームのためにコメントの内容と名前だけを記入するようにして電子メールフィールドとウェブサイトのフィールドを削除し、サイトも見たことがあります。)

アップデート1:この方法を使用する場合、Safariブラウザでコメントを付けると同じコメントが2つあり、重複したコメントが表示されます。 この記事に記載されているコードは正しい方向ですが、Safariブラウザで正しく動作しないようです。 上記のコードを修正するか、この方法の代わりにWordPress コメント提出後Thank youページに移動させる方法「に記載されている方法を試すことができます。

アップデート2:私のコメントに返信が投稿され、通知を受信することができるオプションを追加しました。 このオプションを追加したらコメント作成フォームのサイズが大きすぎるようで即興的にウェブサイトのURLを入力するフィールドを削除しました。 しばらくテストしてみコメント通知の受信機能を維持するかを決定しようとします。

コメントの作成後に別のページにリダイレクトする方法

このブログではコメントを入力し、登録ボタンを押すとThank Youページに移動します。このようにコメントを作成した後に別のページにリダイレクトしたい場合は、次のコードを使用できます。

// Redirect to thank you post after comment (우선순위 20으로 설정)
add_filter('comment_post_redirect', 'redirect_to_thank_page', 20, 2);

function redirect_to_thank_page($location, $comment) {
	// Comment 객체 유효성 확인
	if (!$comment || !isset($comment->comment_ID)) {
		error_log('Redirect Failed: Invalid comment object');
		return $location; // 원래 리디렉션 URL 반환
	}
	
	// 로그 기록
	error_log('Redirect Triggered for Comment ID: ' . $comment->comment_ID);
	
	// 리디렉션 URL (wp_safe_redirect와 함께 사용하면 더 안전)
	$redirect_url = home_url('/thank-you-comment');
	
	return $redirect_url;
}

メモ:

16のコメント

コメントを残す

  1. 本当に便利な情報ですね! Disqusからデフォルトのコメントシステムに変更し、不便な点があることをお知らせいただきありがとうございます。

    返信
  2. Warning: Undefined array key "ta_comment_wait_approval"

    コードを追加した後にデバッグモードを有効にすると、上部のメッセージが表示され、以下のように修正して解決しました!

    //コメント送信後に監査メッセージを表示
    add_action( 'set_comment_cookies', function( $comment, $user ) {
    setcookie( 'ta_comment_wait_approval', '1', time() + 3600, '/' );
    }、10、2);

    add_action( 'init', function() {

    // Cookieが存在し、値が「1」であることを確認する
    if ( isset($_COOKIE['ta_comment_wait_approval']) && $_COOKIE['ta_comment_wait_approval'] === '1' ) {

    //クッキーを削除
    setcookie( 'ta_comment_wait_approval', '', time() - 3600, '/' );

    add_action( 'comment_form_before', function() {
    echo "コメントが送信されました。ありがとうございます。 ";
    });
    }
    });

    add_filter( 'comment_post_redirect', function( $location, $comment ) {
    $location = get_permalink( $comment->comment_post_ID ) 。 '#wait_approval';
    return $location;
    }、10、2);

    返信
  3. この文章の基本コメントも補完して使うことができるということを知りました。
    今、私は走ったコメントにコメントが走った後、通知が来るようになれば、さらに良いです。

    ああ、ところでコメントをつけ難波コメント成功コメントの代わりに重複コメントが浮かぶんですね。

    返信
    • コメントをつけてたら、次のようなコメントが表示されないのですか?

      コメントが正常に送信されました。 コメントはレビュー後に投稿されます。 上記のコメントに誤字やエラーがある場合は、もう一度コメントにつけて、「以前のコメントを置き換えてください」と明記すると、既存のコメントは削除されます。

      返信
      • ここワード様のブログに残した第コメントにワードさんがコメントをすべてお気軽私は、通知が別々に来ない。
        記憶しているがわざわざ来て知ることができます。

        さっきコメントをするとき成功コメントの代わりに重複コメントが浮遊ね。 お知らせささげることと思います。 ^^;

      • thank youページにある「戻る」を押したところ、コメントウィンドウに私が書いたコメントがそのまま作成中のまま残っているように出ましたね。 コメントが上がったのかどうか、しばらくお困りしました。

      • ブラウザをどのブラウザを使用?
        私がテストしたときには正常に動作しましたが。
        それでは、「戻る」ボタンの代わりに「ホームに行く」ボタンに置​​き換える必要があります。

      • コメント成功メッセージが、Google Chromeでは正常に動作しますが、サファリので不思議に動作していたようですね。
        そしてThank youページでも「戻る」ボタンがサファリでは正常に動作しないようですね。 Macのユーザーがどれくらいになるのかわかりませんが、Macでも正常に動作するようにする方法を学ぶ必要があります。

      • Safariでもう一度「戻る」ボタンを押してテストしますか?

        Googleを検索し、サファリの「戻る」ボタンに使用するコードを見つけて置き換えました。

        -----
        iPadのSafariでテストしてみると、正常に「戻る」ボタンが機能します。

  4. この文章の基本コメントも補完して使うことができるということを知りました。
    今、私は走ったコメントにコメントが走った後、通知が来るようになれば、さらに良いです。

    返信