Intereting Posts

Проверьте, является ли текущий пользователь автором первого комментария

Я редактирую файл comments.php для моего сайта. Я хочу, чтобы раздел комментария был примерно таким: только тот, кто сделал первый комментарий, и автор сообщения сможет создавать следующие комментарии один за другим. Теперь мой код выглядит примерно так. Это не работает, как в $current_user->ID == $challengerName не работает.

 $challengerName = ''; global $post, $current_user; $commentNum = get_comments_number(); if ( $commentNum < 10 ) { if ( $commentNum == 0 ) { if ( $post->post_author == $current_user->ID ){ } else{ comment_form($comment_args); } } if ( $commentNum == 1 ) { $challengerName = get_comment_author(); if ( $post->post_author == $current_user->ID ) { comment_form($comment_args); } else{ } } //This handles until comment number 1 if ( $commentNum > 1) { if ($commentNum % 2 == 0) { if ( $post->post_author == $current_user->ID ){ } elseif ($current_user->ID == $challengerName) { comment_form($comment_args); } } else{ if ( $post->post_author == $current_user->ID ){ comment_form($comment_args); } else{ } } } }//Check end if number of comments is 10 or less else { echo "Debate Over"; } 

Вспомогательная функция

Вот вспомогательная функция (непроверенная), чтобы проверить, является ли данный идентификатор пользователя первым комментатором для данного идентификатора почты:

 /** * Check if a given user ID is the first commenter for a given post ID * * @param int $user_id User ID * @param int $post_id Post ID * @return bool True/False */ function wpse_is_user_first_commenter( $user_id = 0, $post_id = 0 ) { $first_comment = get_comments( [ 'status' => 'approve', 'number' => 1, 'order' => 'ASC', 'orderby' => 'comment_date_gmt', 'post_id' => (int) $post_id, ] ); if( empty( $first_comment ) ) return false; return $first_comment[0]->user_id === $user_id; } 

Пример использования:

Проверьте, является ли текущий пользователь первым комментатором текущего сообщения:

 if ( wpse_is_user_first_commenter( get_current_user_id(), get_the_ID() ) ) { // ... } 

Надеюсь, вы сможете приспособить его к вашим потребностям!