Intereting Posts
Объединение массива привилегированных пользователей с моим текущим запросом Как получить связанные сообщения и комментарии wp под вкладками Расширенные пользовательские поля в functions.php Загрузка изображения профиля приятеля с шаблона пользовательской страницы Проблема с числовыми постоянными значениями после 4.3.1 Можно ли добавить дополнительную информацию в заголовке сообщения worpress для использования OG Как добавить подкатегории в блогролл? Как использовать атрибуты заголовка в виджетах боковой панели? Как отфильтровать описание метакатализатора excerpt в admin? у пользователя есть разрешение на чтение настраиваемого сообщения, но оно не отображается в плагине wordpress Является ли встроенный обновитель «лучшим» способом обновления установок WP? Двумерный массив сообщений по категориям Установленная тема Forca, интересно, как я могу изменить экран редактирования Post get_query_var ('post_type') не возвращается в фильтр выводить строки отладки в конец страницы

Как ограничить пользователей одним комментарием за сообщение

Я использую WordPress как сайт петиции и взламываю систему комментариев для работы в качестве подписки на петицию. Я хотел бы узнать, как я могу ограничить пользователя опубликовать только один комментарий за сообщение. До сих пор я могу ограничить каждого пользователя одним комментарием на всем сайте WordPress, как показано в приведенном ниже коде, но это не то, что я хочу выполнить.

Опять же, как я могу ограничить каждого пользователя одним комментарием за сообщение?

<?php /* * Single Petition Template * @package WordPress * @subpackage Twenty_Thirteen * @since Twenty Thirteen 1.0 * template author: Facinet Toure * website URL: http://mongage.com */ get_header(); ?> <div id="primary" class="content-area"> <div id="content" class="site-content" role="main"> <?php /* The loop */ ?> <?php while ( have_posts() ) : the_post(); ?> <?php //get_template_part( 'content', get_post_format() ); ?> <!-- post format --> <article id="post-<?php the_ID(); ?>" <?php post_class(); ?>> <header class="entry-header"> <?php if ( has_post_thumbnail() && ! post_password_required() ) : ?> <div class="entry-thumbnail"> <?php the_post_thumbnail('full'); ?> </div> <?php endif; ?> <h1 class="entry-title"> <?php the_title(); ?> </h1> <p><span class="rounded-corners alignleft"><?php echo get_avatar( $post->post_author, 74 ) ?></span> <span class="author"><?php the_author_meta( 'display_name' ); ?></span> <span> | </span>This post currently has <?php comments_number( 'no responses', 'one response', '% responses' ); ?> .</p> </header> <!-- .entry-header --> <div class="entry-content"> <?php the_content( __( 'Continue reading <span class="meta-nav">&rarr;</span>', 'twentythirteen' ) ); ?> <?php wp_link_pages( array( 'before' => '<div class="page-links"><span class="page-links-title">' . __( 'Pages:', 'twentythirteen' ) . '</span>', 'after' => '</div>', 'link_before' => '<span>', 'link_after' => '</span>' ) ); ?> </div> <!-- .entry-content --> <footer class="entry-meta"> <?php twentythirteen_entry_meta(); ?> <?php if ( comments_open() && ! is_single() ) : ?> <span class="comments-link"> <?php comments_popup_link( '<span class="leave-reply">' . __( 'Sign the petition', 'twentythirteen' ) . '</span>', __( 'One comment so far', 'twentythirteen' ), __( 'View all % comments', 'twentythirteen' ) ); ?> </span><!-- .comments-link --> <?php endif; // comments_open() ?> <?php edit_post_link( __( 'Edit', 'twentythirteen' ), '<span class="edit-link">', '</span>' ); ?> <?php if ( is_single() && get_the_author_meta( 'description' ) && is_multi_author() ) : ?> <?php get_template_part( 'author-bio' ); ?> <?php endif; ?> </footer> <!-- .entry-meta --> </article> <!-- #post --> <p> This post currently has <?php comments_number( 'no responses', 'one response', '% responses' ); ?> . </p> <?php twentythirteen_post_nav(); ?> <ol reversed class="commentlist"> <?php //Gather comments for a specific page/post $comments = get_comments(array( 'post_id' => $post->ID, 'status' => 'approve' //Change this to the type of comments to be displayed )); //Display the list of comments wp_list_comments(array( 'per_page' => -1, //Allow comment pagination 'reverse_top_level' => false, //Show the latest comments at the top of the list, 'max_depth' => '1', 'avatar_size' => 0, ), $comments); ?> </ol> <?php // check if user has previously commented the post global $current_user; if ( !is_user_logged_in() ) { echo 'you must be logged in to sign the petition'; } else { $args = array('user_id' => $current_user->ID); $usercomment = get_comments($args); if(count($usercomment) >= 1) { echo '<p>Vous avez déjà signé cette pétition. S\'il vous plaît partager avec votre famille et vos amis</p>'; } else { comment_form(); } }?> <?php endwhile; ?> </div> <!-- #content --> </div> <!-- #primary --> <?php get_sidebar(); ?> <?php get_footer(); ?> 

Solutions Collecting From Web of "Как ограничить пользователей одним комментарием за сообщение"

  //check if user has previously commented the post. global $current_user, $post; if ( !is_user_logged_in() ) { comment_form(); } else { $usercomment = get_comments(array('user_id' => $current_user->ID, 'post_id'=>$post->ID) ); if($usercomment) { echo '<p>Vous avez déjà signé cette pétition. S\'il vous plaît partager avec votre famille et vos amis</p>'; } else { comment_form(); } } 

Теперь код проверяет, ранее ли пользователь прокомментировал эту конкретную должность, а не весь сайт. Надеюсь, что другие найдут это полезным.