web-dev-qa-db-ja.com

コメントが正しく送信されたかどうかを確認


コメントが正しく送信されたことを確認する方法はありますか?たとえば、コメントが正常に送信された場合は、テキストを表示したり、コメントフォームを非表示にしたりします。

1
anton

コメントが正常に送信された場合、WordpressはURLにハッシュタグを追加します。コメントフォームを隠したり情報を表示したりする最も簡単な方法は、Javascriptにハッシュが存在するかどうかを確認することです。

hash = window.location.hash;
if(hash){
    $('#commentform').hide();
}
0
anton

データベースにコメントが挿入された直後に起動するこのアクション comment_post を得ました

0
JMau

次の例では、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 フックリンクを確認してください。

0
Arpita Hunka

私は次の方法でこれを試してみました、あなたはこれを試すことができます....

以下のコードを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}

これはコメントを送信した後にコメントフォームを隠します。

0
Arpita Hunka