Как настроить WordPress «ошибка комментария» - PullRequest
1 голос
/ 27 января 2009

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

Кто-нибудь знает, как это сделать?

Ответы [ 4 ]

2 голосов
/ 27 января 2010

Для этой конкретной проблемы я в итоге напрямую изменил \ wp-comments-post.php - движок тем не позволяет вам его настраивать.

Краткое описание того, что я сделал, состоит в том, чтобы обойти использование "wp_die ()" и вместо этого заставить скрипт выполнить "my_wp_die ()" в сценариях, когда комментарий в блоге не проверяется.

Вот последовательный пример:

1) Пользователь попадает на страницу статьи (вызывая single.php в вашей теме)
2) Пользователь вводит некоторую информацию в поля комментариев (может или не может подтвердить)
3) Сформируйте сообщения в «wp-comments-post.php» с URL-адресом статьи в качестве параметра, чтобы он мог передавать результаты проверки на страницу, которая имеет надлежащие визуальные элементы (боковая панель: я не смог подключить внешний шаблон библиотека, которую я написал, которая интегрируется в тему вместо дублирования шаблона моего сайта в тему) и поля формы пользователя.
4) wp-comments-post.php будет вызывать my_wp_die(), если проверка не выполняется (включает проверку на дублирование из /comment.php:function wp_allow_comment()), или my_wp_success(), если комментарий действителен и будет опубликован.
5) wp-comments-post.php перенаправит пользователя обратно на URL статьи (исходная постоянная ссылка).
6) single.php в теме отобразит сообщение об ошибке / успехе и новый комментарий.

1 голос
/ 27 января 2009

Мне не удалось найти что-то простое в настройке страницы ошибки, однако быстрый взгляд на wp-comments-post.php говорит мне, что когда он сталкивается с ошибкой, он выполняет функцию wp_die (ужасная документация ), который генерирует страницу ошибки. Кажется, он принимает некоторые аргументы, которые контролируют вывод страницы с ошибкой, но не может найти какие-либо подробности о том, что это за опция. Немного подправив wp_die, вы сможете отобразить свою собственную страницу ошибок. Не уверен, поможет ли это, но это место для начала.

0 голосов
/ 24 августа 2013

Я просто ломал голову над этим сам, последняя версия WP, кажется, не имеет каких-либо дальнейших улучшений, насколько я вижу.

Однако мое решение состояло в том, чтобы сделать некоторую проверку формы на стороне клиента в Javascript. Просто прикрепите обработчик событий к кнопке отправки (например, с submit.onclick), а затем свяжите его с функцией проверки JS, чтобы проверить данные и предоставить обратную связь, если они не удаются (например, красная граница вокруг поля формы, вызывающей ошибку).

Не забудьте использовать protectDefault, если данные не проходят проверку, чтобы форма не была отправлена!

Конечно, форма все равно будет отправлена, если Javascript не включен, и в этом случае пользователь все равно увидит страницу ошибок WP по умолчанию. Чтобы обойти это, вы можете использовать опцию PHP, как обсуждалось ранее, но я думаю, что это больше работы.

0 голосов
/ 05 февраля 2009

В связанной заметке убедитесь, что страница с ошибкой отображается правильно в Internet Explorer. Я упоминаю об этом только потому, что недавно столкнулся с проблемой и, к сожалению, потратил несколько часов на ее выяснение.

В двух словах, общая страница ошибок, которую генерирует WordPress (например, после сбоя проверки «комментария пользователя»), отправляется в браузер с кодом состояния HTTP «500 Internal Server Error». Как ни странно, Internet Explorer (до версии 7) будет игнорировать страницы ошибок, отправленные с «500» , если размер страницы меньше 512 байт , отображая общее сообщение об ошибке Microsoft «Эта страница не может быть отображено».

Ребята из WordPress знают об этой ошибке и написали функцию wp_die (), которая гарантирует, что страница ошибки будет больше, чем 512 байт. К сожалению, они не учитывали веб-серверы, которые используют сжатие gzip (то есть сокращают веб-страницу до ее отправки по сети) для повышения производительности. Internet Explorer 5/6 не будет отображать общие страницы ошибок WordPress (v2.7 и более ранние), если веб-сервер использует сжатие gzip.

Если это поможет другим людям, которые сталкиваются с этим, я написал сообщение в блоге, описывающее проблему более подробно (включая скриншоты), включая ссылку на ошибку WordPress, которую я открыл, и инструкции для временной работы. вокруг этого можно использовать, пока ошибка не будет исправлена ​​должным образом. См. http://www.clintharris.net/2009/ie-512-byte-error-pages-and-wordpress/ для получения дополнительной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...