- Вопрос или проблема
- Ответ или решение
- Проблема с редиректом при комментировании: пустая страница
- 1. Проверка файла wp-comments-post.php
- 2. Проверка настроек темы и плагинов
- 3. Убедитесь в корректности прав доступа
- 4. Проверка на наличие ошибок в файлах журнала
- 5. Обратитесь в техническую поддержку
- Заключение
Вопрос или проблема
Я много раз искал решение этой проблемы на форумах и попробовал несколько вариантов, но ничего не сработало.
Когда я пытаюсь оставить комментарий здесь:
http://www.chicitout.co.nf/crochet-lace-skater-dress/
меня перенаправляет на пустую страницу. Я пробовал войти как администратор и также выйти из аккаунта.
У меня не активирован Akismet.
Какие-либо предложения?
Спасибо, 🙂
Вы можете получить доступ к вашему сайту через FTP или через файловый менеджер хостинг-контроллера?
Если да, проверьте, есть ли какой-либо код в wp-comments-post.php в корне вашего сайта.
Если он пуст, вставьте это внутрь:
<?php
/**
* Обрабатывает публикацию комментариев в WordPress и предотвращает дублирование публикации комментариев.
*
* @package WordPress
*/
if ( 'POST' != $_SERVER['REQUEST_METHOD'] ) {
header('Allow: POST');
header('HTTP/1.1 405 Method Not Allowed');
header('Content-Type: text/plain');
exit;
}
/** Настройка окружения WordPress. */
require( dirname(__FILE__) . '/wp-load.php' );
nocache_headers();
$comment = wp_handle_comment_submission( wp_unslash( $_POST ) );
if ( is_wp_error( $comment ) ) {
$data = $comment->get_error_data();
if ( ! empty( $data ) ) {
wp_die( $comment->get_error_message(), $data );
} else {
exit;
}
}
$user = wp_get_current_user();
/**
* Выполняет другие действия, когда установлены куки комментариев.
*
* @since 3.4.0
*
* @param WP_Comment $comment Объект комментария.
* @param WP_User $user Объект пользователя. Пользователь может не существовать.
*/
do_action( 'set_comment_cookies', $comment, $user );
$location = empty( $_POST['redirect_to'] ) ? get_comment_link( $comment ) : $_POST['redirect_to'] . '#comment-' . $comment->comment_ID;
/**
* Фильтрует URI местоположения для перенаправления комментирующего после публикации.
*
* @since 2.0.5
*
* @param string $location URI 'redirect_to', отправленный через $_POST.
* @param WP_Comment $comment Объект комментария.
*/
$location = apply_filters( 'comment_post_redirect', $location, $comment );
wp_safe_redirect( $location );
exit;
?>
Ответ или решение
Проблема с редиректом при комментировании: пустая страница
Если вы столкнулись с ситуацией, когда при попытке оставить комментарий на сайте происходит редирект на пустую страницу, это может быть вызвано несколькими причинами. Рассмотрим основные шаги для диагностики и решения данной проблемы.
1. Проверка файла wp-comments-post.php
Первое, что следует сделать – это проверить файл wp-comments-post.php
, который находится в корневой директории вашего сайта WordPress. Если этот файл пустой или повреждённый, это может вызвать редирект на пустую страницу. Для этого:
- Подключитесь к вашему сайту через FTP или используйте файловый менеджер в панели управления хостингом.
- Найдите файл
wp-comments-post.php
и откройте его для редактирования.
В случае, если файл пуст, вы можете использовать следующий код для его восстановления:
<?php
/**
* Handles Comment Post to WordPress and prevents duplicate comment posting.
*
* @package WordPress
*/
if ( 'POST' != $_SERVER['REQUEST_METHOD'] ) {
header('Allow: POST');
header('HTTP/1.1 405 Method Not Allowed');
header('Content-Type: text/plain');
exit;
}
/** Sets up the WordPress Environment. */
require( dirname(__FILE__) . '/wp-load.php' );
nocache_headers();
$comment = wp_handle_comment_submission( wp_unslash( $_POST ) );
if ( is_wp_error( $comment ) ) {
$data = $comment->get_error_data();
if ( ! empty( $data ) ) {
wp_die( $comment->get_error_message(), $data );
} else {
exit;
}
}
$user = wp_get_current_user();
/**
* Perform other actions when comment cookies are set.
*
* @since 3.4.0
*
* @param WP_Comment $comment Comment object.
* @param WP_User $user User object. The user may not exist.
*/
do_action( 'set_comment_cookies', $comment, $user );
$location = empty( $_POST['redirect_to'] ) ? get_comment_link( $comment ) : $_POST['redirect_to'] . '#comment-' . $comment->comment_ID;
/**
* Filter the location URI to send the commenter after posting.
*
* @since 2.0.5
*
* @param string $location The 'redirect_to' URI sent via $_POST.
* @param WP_Comment $comment Comment object.
*/
$location = apply_filters( 'comment_post_redirect', $location, $comment );
wp_safe_redirect( $location );
exit;
?>
2. Проверка настроек темы и плагинов
Проблема также может быть вызвана конфликтом с темой или плагинами. Чтобы протестировать это:
- Деактивируйте все плагины и проверьте, сохраняется ли проблема.
- Если комментарии работают, поочередно включайте плагины, чтобы выявить проблемный.
- Попробуйте переключиться на стандартную тему WordPress (например, Twenty Twenty-One) и проверьте функциональность.
3. Убедитесь в корректности прав доступа
Часто проблема может быть связана с неправильными правами на файлы или директории. Убедитесь, что права для файлов установлены на 644, а для папок – на 755. Это можно проверить и изменить через FTP-клиент.
4. Проверка на наличие ошибок в файлах журнала
Если проблема не решается, проверьте файлы журнала ошибок на вашем сервере (обычно это доступно в панели управления). Ошибки PHP могут давать дополнительную информацию о том, что именно не так.
5. Обратитесь в техническую поддержку
Если вышеперечисленные шаги не помогли, стоит обратиться в службу поддержки вашего хостинга. Возможно, причина кроется в конфигурации сервера, которую вы не можете изменить самостоятельно.
Заключение
Если вы выполняли все вышеперечисленные шаги, но проблема остается нерешенной, рекомендуем рассмотреть возможность переноса сайта на новый хостинг, если текущий хостинг служит источником проблем. Помните, что регулярное создание резервных копий и обновление всех компонентов сайта поможет избежать подобных ситуаций в будущем.
Не забывайте о важности SEO-оптимизации вашего контента, чтобы ваш сайт был доступен и удобен для пользователей, что также позитивно скажется на вашем бизнесе.