1 - คุณสามารถตรวจสอบคุกกี้และทำการเปลี่ยนเส้นทางของคุณโดยใช้ hooks ที่ถูกเรียกก่อนที่จะส่งออกใด ๆ เช่น 'init' hook:
<?php
// Hook the function "redirect()" on to the "init" action
add_action('init', 'redirect');
// redirect() may redirect the user depending on the cookies he has
function redirect(){
/* CODE */
}
?>
2 - วิธีที่ดีที่สุดในการตั้งค่าคุกกี้คือใช้ตะขอ 'init' ดังนี้:
<?php
add_action('init', 'my_setcookie');
// my_setcookie() set the cookie on the domain and directory WP is installed on
function my_setcookie(){
$path = parse_url(get_option('siteurl'), PHP_URL_PATH);
$host = parse_url(get_option('siteurl'), PHP_URL_HOST);
$expiry = strtotime('+1 month');
setcookie('my_cookie_name_1', 'my_cookie_value_1', $expiry, $path, $host);
/* more cookies */
setcookie('my_cookie_name_2', 'my_cookie_value_2', $expiry, $path, $host);
}
?>
สิ่งนี้สอดคล้องกันมากขึ้นหากคุณมีบล็อกที่www.example.com/blog coockie จะไม่สามารถใช้ได้ที่
- www.example.com
- www.example.com/store
- example.com
- www2.example.com
- ...
ปรับปรุง
คุณควรจะสามารถใช้ค่าคงที่ของ COOKIE_PATH และ COOKIEDOMAIN ได้มากกว่าที่จะคิดออกเองซึ่งฉันเพิ่งสังเกตเห็นในคำตอบของ Andre R Kohl - drzaus