Intereting Posts
Получение результата из процедуры в laravel – удаление квадратных скобок из ответа Вставка карты Google в HTML-страницу на основе координат GPS Могу ли я получить доступ к константе класса PHP, используя переменную для имени константы? Приложение Twitter oauth начало возвращать код ошибки 89 Недействительный или истекший токен после 1 года работы PHP не загружает xdebug при запуске из Eclipse PDT Разделение данных PHP / MySQL на 3 столбца Nginx – wordpress в подкаталоге, какие данные должны быть переданы? PHP находит разницу между двумя датами Фоновый процесс PHP все еще влияет на загрузку страницы Насколько уникальным является 5-значный номер mt_rand ()? Кэширование с помощью PHP для снятия стресса с MySQL Как заставить PHP-версию для командной строки? контроллер по умолчанию внутри подпапки codeigniter 3 не работает Проблема кодирования Php / ODBC Переписывание строки JSON – группировка ключей по значению в новый массив с двумя уровнями глубины?

В wordpress, как перенаправить после комментария обратно на ссылочную страницу?

У меня есть комментарии на разных типах страниц в WordPress (архив, тег, поиск, главная страница), и после того, как пользователь отправляет комментарий, я бы хотел, чтобы они были перенаправлены обратно на их ссылочную страницу, а не на одну страницу публикации. Есть идеи?

Поместите это в свои functions.php :

add_filter('comment_post_redirect', 'redirect_after_comment'); function redirect_after_comment($location) { return $_SERVER["HTTP_REFERER"]; } 

Используйте API-интерфейс WordPress. Это правильный способ расширения или настройки функций в WordPress. После того, как вы немного ознакомились с API, ознакомьтесь с ссылкой на Action ( я бы опубликовал ссылку, но StackOverflow не позволит мне ).

Для выполнения вашей задачи вам понадобится как минимум два крюка для действий:

  1. comment_post – запускается непосредственно после добавления комментария в вашу базу данных
  2. comment_form – запускается всякий раз, когда форма комментария печатается из шаблона темы

В принципе, мы хотим захватить переменную HTTP_REFERER в постоянной $ _SESSION всякий раз, когда пользователь сначала видит форму комментария. Затем мы перенаправляем их после публикации комментария.

Создайте comment-redirect.php в папке wp-content/plugins WordPress.
Вот приблизительное представление о том, что вы поместили бы в этот файл (я оставлю его для уточнения / проверки):

 <?php /* Plugin Name: Post Comment Redirect Plugin URI: http://example.com Description: Redirects you to the previous page after posing a comment Version: 0.1a Author: Anonymous Author URI: http://example.com License: GPL2 */ // Run whenever a comment is posted to the database. // If a previous page url is set, then it is unset and // the user is redirected. function post_comment_redirect_action_comment_post() { if (isset($_SESSION['PCR_PREVIOUS_PAGE_URL'])) { $ref = $_SESSION['PCR_PREVIOUS_PAGE_URL']; unset($_SESSION['PCR_PREVIOUS_PAGE_URL']); header('Location: '.$ref); } } // Run whenever comment form is shown. // If a previous page url is not set, then it is set. function post_comment_redirect_action_comment_form() { if (!isset($_SESSION['PCR_PREVIOUS_PAGE_URL'])) { if ($ref = $_SERVER['HTTP_REFERER']) { $_SESSION['PCR_PREVIOUS_PAGE_URL'] = $ref; } } } add_action('comment_post', 'post_comment_redirect_action_comment_post'); add_action('comment_form', 'post_comment_redirect_action_comment_form'); с <?php /* Plugin Name: Post Comment Redirect Plugin URI: http://example.com Description: Redirects you to the previous page after posing a comment Version: 0.1a Author: Anonymous Author URI: http://example.com License: GPL2 */ // Run whenever a comment is posted to the database. // If a previous page url is set, then it is unset and // the user is redirected. function post_comment_redirect_action_comment_post() { if (isset($_SESSION['PCR_PREVIOUS_PAGE_URL'])) { $ref = $_SESSION['PCR_PREVIOUS_PAGE_URL']; unset($_SESSION['PCR_PREVIOUS_PAGE_URL']); header('Location: '.$ref); } } // Run whenever comment form is shown. // If a previous page url is not set, then it is set. function post_comment_redirect_action_comment_form() { if (!isset($_SESSION['PCR_PREVIOUS_PAGE_URL'])) { if ($ref = $_SERVER['HTTP_REFERER']) { $_SESSION['PCR_PREVIOUS_PAGE_URL'] = $ref; } } } add_action('comment_post', 'post_comment_redirect_action_comment_post'); add_action('comment_form', 'post_comment_redirect_action_comment_form'); 

После того как вы сохранили свой плагин, включите его в разделе «Плагины wp-admin» (обычно находится около h ** p: //your-website-address.com/wp-admin).

 $ref = $_SERVER["HTTP_REFERER"]; header("Location: $ref");