Используйте WordPress Плагин API . Это правильный способ расширить или настроить функциональность в WordPress. Как только вы прочитаете немного об API, ознакомьтесь с руководством по действию ( Я бы опубликовал ссылку, но StackOverflow не позволит мне ).
Для выполнения вашей задачи вам понадобится как минимум два хука действий:
- comment_post - запускать сразу после добавления комментария в вашу базу данных
- comment_form - запускается при печати формы комментария из шаблона темы
По сути, мы хотим захватить переменную HTTP_REFERER в постоянном $ _SESSION всякий раз, когда пользователь впервые видит форму комментария. Затем мы перенаправляем их после публикации комментария.
Создать comment-redirect.php
в папке WordPress wp-content/plugins
.
Вот примерное представление о том, что вы поместите в этот файл (я оставляю вам возможность его уточнить / проверить):
<?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).