コメントが正しく送信されたことを確認する方法はありますか?たとえば、コメントが正常に送信された場合は、テキストを表示したり、コメントフォームを非表示にしたりします。
コメントが正常に送信された場合、WordpressはURLにハッシュタグを追加します。コメントフォームを隠したり情報を表示したりする最も簡単な方法は、Javascriptにハッシュが存在するかどうかを確認することです。
hash = window.location.hash;
if(hash){
$('#commentform').hide();
}
データベースにコメントが挿入された直後に起動するこのアクション comment_post を得ました
次の例では、comment_postフックを使用して、コメントが投稿された直後に関数を実行しています。この関数は、コメントが承認されたかどうかを確認し、承認された場合は指定されたコードを実行します。
function show_message_function( $comment_ID, $comment_approved ) {
if( 1 === $comment_approved ){
//function logic goes here
}}add_action( 'comment_post', 'show_message_function', 10, 2 );
Add_action行には、優先順位とパラメータ数(、10、2)が含まれています。パラメータの数を省略すると、関数内の最初のパラメータ($ comment_ID)にしかアクセスできなくなります。 2番目のパラメータ($ comment_approved)にアクセスすることはできません。
詳細については、 comment_post フックリンクを確認してください。
私は次の方法でこれを試してみました、あなたはこれを試すことができます....
以下のコードをfunctions.phpに入れてください
function hide_comment_form_function( $comment_ID, $comment_approved ){
$commentData = get_comment( $comment_ID );
$postTitle = get_the_title($commentData->comment_post_ID);
$url = get_site_url() ."/" .$postTitle . "/?status=cmt_post";
header("Location: $url");
exit();}add_action( 'comment_post', 'hide_comment_form_function', 10, 2 );
そして以下のheader.phpのコード
if(isset($_GET['status']) && ($_GET['status'] == "cmt_post")){
?>
<style>
#commentform, #reply-title
{
display: none;
}
</style>
<?php}
これはコメントを送信した後にコメントフォームを隠します。