Как разрешить дублирование комментариев и без комментариев

Я много искал, но я не был близок к тому, чтобы найти ответ на этот вопрос …

У меня есть мета-поле комментариев, которое дает комментарию два галочки. Ключ-галочка – это единственный вход в свой комментарий, поэтому есть много дублирующих комментариев. В то же время в комментарии нет содержания.

Поэтому мне нужны две вещи: во-первых, дайте комментарий без ввода текста, а во-вторых, позвольте дублировать комментарии.

Solutions Collecting From Web of "Как разрешить дублирование комментариев и без комментариев"

WordPress не позволит вам, используя свой процесс комментариев по умолчанию, вставить пустые комментарии в базу данных. Это выполняется с помощью wp_handle_comment_submission() со следующим безусловным кодом:

 if ( '' == $comment_content ) { return new WP_Error( 'require_valid_comment', __( '<strong>ERROR</strong>: please type a comment.' ), 200 ); } 

Если вы настаиваете на использовании комментариев, вам нужно будет предоставить некоторое непустое значение для $comment_content , чего проще всего сделать, вставив некоторый пробельный контент в поле комментария.

Что касается дубликатов, то с WordPress 4.4.0 вы можете разрешить дублировать комментарии, используя хук фильтра duplicate_comment_id . Согласно документам:

Фильтрует идентификатор, если таковой имеется, дублированного комментария, найденного при создании нового комментария.

Верните пустое значение из этого фильтра, чтобы позволить WP рассматривать дубликат комментария.

Например, используйте следующий код, чтобы безоговорочно разрешить дублирование комментариев:

 add_filter('duplicate_comment_id', '__return_false'); 

Надеюсь это поможет. 🙂

Вот как отправить комментарий без текста в текстовом поле …

 function rei_preprocess_comment($comment_data) { if ($comment_data['comment_content'] == '%dummy-text%') { $comment_data['comment_content'] = ''; // replace dummy text. } return $comment_data; } add_filter('preprocess_comment', 'rei_preprocess_comment'); function rei_wp_footer() { ?> <script> jQuery(function($){ var comment = $('textarea#comment'); comment.removeAttr('required'); // remove required attribute of textarea. $('#commentform').on('submit',function(){ if (comment.val() == '') { comment.css('text-indent','-999px').val('%dummy-text%'); // change to dummy text. } }); }); </script> <?php } add_action( 'wp_footer', 'rei_wp_footer' ); . function rei_preprocess_comment($comment_data) { if ($comment_data['comment_content'] == '%dummy-text%') { $comment_data['comment_content'] = ''; // replace dummy text. } return $comment_data; } add_filter('preprocess_comment', 'rei_preprocess_comment'); function rei_wp_footer() { ?> <script> jQuery(function($){ var comment = $('textarea#comment'); comment.removeAttr('required'); // remove required attribute of textarea. $('#commentform').on('submit',function(){ if (comment.val() == '') { comment.css('text-indent','-999px').val('%dummy-text%'); // change to dummy text. } }); }); </script> <?php } add_action( 'wp_footer', 'rei_wp_footer' );