Я пытаюсь установить файлы cookie для перенаправления возвращающихся пользователей на мою определенную страницу на моем сайте WordPress.
Я хотел бы получить совет по этим 2 вещам:
- Где в php-файлах WordPress следует проверять файлы cookie перед загрузкой любого контента для обработки перенаправления? Есть ли хороший файл, в котором он должен существовать по сравнению с другими?
- Как правильно установить файл cookie в WordPress?
setcookie('cookie_name', 'cookie_value', time()+4000);
похоже, в моей системе не сохраняются файлы cookie.
Ах, понял, что мне нужно подключить это к init(). РЕШЕНИЕ: я создал функцию в functions.php, которая будет устанавливать и проверять куки. чтобы это работало правильно, после определения функции вне вызова функции выполните следующее: add_action(‘init’, ‘имя-функции’);
Вы вправе сами ответить на свой вопрос…
На самом деле, это явно поощряется. Пожалуйста, ответьте сами. Я также отправляю это на WordPress.SE, так как там это кажется более подходящим.
Спасибо, ребята, я не знал, что есть область WordPress. И спасибо за подсказку, чтобы ответить самому себе 🙂 С благодарностью, +1 с.
Убедитесь, что вы используете предварительно запеченные константы cookie, которые предлагает WordPress. Прочтите эту статью, чтобы получить дополнительную информацию о том, как правильно устанавливать, получать и удалять файлы cookie benmarshall.me/setting-cookies-in-wordpress
Как вы помещаете несколько переменных, например, Имя, Фамилия, Random1, Random2 вместо одной переменной «my_cookie_1».?
Просто добавьте больше
setcookie()
О, я не знал, что файлы cookie содержат только одну переменную для каждого файла cookie. Есть ли способ установить несколько файлов cookie без необходимости иметь код времени и URL-адреса, указанные выше, чтобы он составлял меньше кода? Будут ли они помещены в переменную?
вы также должны иметь возможность использовать константы
COOKIEPATH
иCOOKIEDOMAIN
вместо того, чтобы выяснять их самостоятельно, что я только что заметил в ответе Андре Р. Коляисправление:
COOKIE_DOMAIN
это не решение, пожалуйста, добавьте полный код вашей функции, кроме того дефисы в именах функций не будут работать.
Пожалуйста, исправьте форматирование кода.
Также очень полезен небольшой контент об источнике.
Дефисы в именах функций определенно не будут работать.
1 — Вы можете проверить наличие файлов cookie и выполнить перенаправление с помощью хуков, которые вызываются перед любым выводом, например, хук «init»:
2. Лучший способ установить файлы cookie — использовать хук «init» следующим образом:
Это более последовательно, если у вас есть блог по адресу http://www.example.com/blog, файлы cookie не будут доступны по адресу
Обновлять
Вы, вероятно, должны использовать константы
COOIKEPATH
иCOOKIE_DOMAIN
, существующие с WP 3.0Ах, понял, что мне нужно подключить это к файлу
init()
.РЕШЕНИЕ: я создал функцию в functions.php, которая будет устанавливать и проверять куки. чтобы это работало правильно, после определения функции вне вызова функции это:
Этот способ работал:
Вы захотите удалить свой файл cookie до того, как какой-либо контент будет записан на страницу (до отправки заголовков).
Чтобы установить файл cookie, укажите путь, домен, а также я рекомендую установить для последних 2 параметров значение true (
$secure
и$httponly
). Вам также нужно будет указать те же параметрыsetcookie()
при удалении, кроме$expiry
(который должен быть отрицательным) и$value
(который должен быть пустым »).Если вы передаете json через файл cookie, похоже, вам
base64_encode
это тоже нужно, иначе он не будет правильно декодировать.Все это должно быть сделано в классе, чтобы вы могли получить доступ к значению файла cookie позже в своем коде. Класс можно добавить в плагин или functions.php.
Вот пример, где мы используем файл cookie для хранения ответа на действие, чтобы затем отобразить его пользователю после перенаправления:
Затем вы можете установить файл cookie с помощью:
my_custom_class::some_action_that_sets_the_cookie('the message');