Вопрос или проблема
У меня отличная форма комментариев и настроенные вложенные комментарии, используя встроенные функции WordPress: comment_form
и wp_list_comments
.
Однако я пытаюсь также создать пользовательский шаблон комментариев для конкурса для определенных постов. Я вызываю comments_template('/contest-comments.php', true);
условно, в зависимости от того, существует ли определенное пользовательское поле или нет. Это отлично работает.
Я пытаюсь создать что-то вроде http://2010.sf.wordcamp.org/attendees/
Я хочу показывать только имя человека, заключенное в ссылку, и его аватар. Поэтому я хочу, чтобы моя форма комментариев показывала только поля Имя, Email и URL. Текстовое поле должно быть скрыто.
Для формы комментариев я передаю пустое значение для ключа comment_field
в массив $args
, который я передаю в comment_form
.
Это делает форму комментариев нормальной, но когда кто-то отправляет комментарий, они получают предупреждение от WordPress о том, что их сообщение было пустым.
Есть ли решения для этой проблемы? Спасибо!
Краткий ответ: нет, но вы можете обойти это:
add_filter('comment_form_field_comment', 'my_comment_form_field_comment');
function my_comment_form_field_comment($default){
return false;
}
add_action('pre_comment_on_post', 'my_pre_comment_on_post');
function my_pre_comment_on_post($post_id){
$some_random_value = rand(0, 384534);
$_POST['comment'] = "Комментарий по умолчанию. Некоторое случайное значение, чтобы избежать предупреждения о дубликате комментария: {$some_random_value}";
}
Если вы хотите это только для определенных страниц, вам следует создать пользовательский шаблон страницы, например “boo.php”, и в код, который я привел выше, добавлять эти фильтры только если текущий шаблон страницы – boo (используйте $post->page_template
для получения текущего шаблона страницы при проверке).
Связанные вопросы:
Да, можно, используйте хук allow_empty_comment, подробнее здесь:
https://developer.wordpress.org/reference/hooks/allow_empty_comment/
Вот пример:
// Включить пустой комментарий.
add_filter( 'allow_empty_comment', '__return_true' );
Вы также можете рассмотреть возможность снятия галочки в разделе Настройки > Обсуждение для:
Автор комментария должен заполнить имя и email
Ответ или решение
Да, WordPress не позволяет отправлять пустые комментарии по умолчанию, но возможны обходные пути для решения этой задачи. Рассмотрим два основных подхода для реализации функциональности, когда требуется скрыть текстовое поле и разрешить отправку формы с пустым комментарием.
Решение с использованием фильтров и хуков WordPress
-
Добавление кастомного фильтра для поля комментария
Вы можете использовать фильтрcomment_form_field_comment
, чтобы убрать текстовое поле для комментария:add_filter('comment_form_field_comment', 'my_comment_form_field_comment'); function my_comment_form_field_comment($default){ return false; }
-
Предварительное заполнение формы перед отправкой
Используйте действиеpre_comment_on_post
, чтобы автоматически заполнить поле комментария случайным текстом и избежать предупреждения о дублирующемся комментарии:add_action('pre_comment_on_post', 'my_pre_comment_on_post'); function my_pre_comment_on_post($post_id){ $some_random_value = rand(0, 384534); $_POST['comment'] = "Default comment. Some random value to avoid duplicate comment warning: {$some_random_value}"; }
Использование хука allow_empty_comment
Если вы хотите разрешить пустые комментарии на постоянной основе, можно воспользоваться хуком allow_empty_comment
:
add_filter('allow_empty_comment', '__return_true');
Настройки WordPress
Для того чтобы упростить ввод данных и избежать заполнения ненужных полей, рекомендуется в административной панели WordPress зайти в Settings > Discussion
и снять галочку с пункта:
- "Пользователь должен указать имя и email"
Оптимизация SEO
Убедитесь, что ваше решение не нарушает пользовательский опыт и соответствует стандартам SEO. Уделяйте внимание уникальности контента и аккуратной интеграции ключевых слов, таких как "WordPress комментарии", "пустые комментарии", и "настроить шаблон комментариев", чтобы улучшить видимость вашего ответа в поисковых системах.
Вывод
Применяя вышеуказанные методы, можно с легкостью настроить форму комментариев для определённых страниц, сохраняя при этом эстетический и функциональный аспект вашей платформы на WordPress. Предложенные решения подходят для создания уникальных и минималистичных интерфейсов, где пользовательский опыт ставится во главу угла без ущерба для функциональности.