[英]How do I set a cookie in Wordpress?
我遇到了 cookie 無法提供的問題。 我們添加此 cookie 作為一種解決方法,以阻止 Safari 和 Firefox 瀏覽器中的第 3 方 cookie。
下面的代碼是我包含在我們的 Wordpress 子主題 functions.php 文件中的代碼(目前在我們的生產服務器上。
如果您認為需要進行任何更改,請有人查看並提出建議。 提前謝謝你。
function set_my_cookie() {
$user_agent = $_SERVER['HTTP_USER_AGENT'];
$user_agent = strtolower($user_agent);
$user_agent = ' ' . $user_agent;
$browser = '';
if (strpos($user_agent, 'opera') || strpos($user_agent, 'opr/')) $browser = 'Opera';
else if (strpos($user_agent, 'edge')) $browser = 'Edge';
else if (strpos($user_agent, 'chrome')) $browser = 'Chrome';
else if (strpos($user_agent, 'safari')) $browser = 'Safari';
else if (strpos($user_agent, 'firefox')) $browser = 'Firefox';
else if (strpos($user_agent, 'msie') || strpos($user_agent, 'trident/7')) $browser = 'Internet Explorer';
if ($browser == 'Safari') {
$urlparts = parse_url(home_url());
$domain = '.' . $urlparts['host'];
$time = strtotime("+1 year");
if (!isset($_COOKIE['kppid'])) {
$kppid = uniqid('sf', true);
$kppid = str_ireplace('.', '', $kppid);
setcookie('x', $x $time, '', $domain);
} else {
$kppid = $_COOKIE['kppid'];
setcookie('x', $x, $time, '', $domain);
}
}
}
您必須為 cookie 創建一個 init 鈎子,請參閱
add_action( 'init', 'my_setcookie' );
function my_setcookie() {
setcookie( $name, $value, 24 * DAYS_IN_SECONDS, COOKIE_PATH, COOKIE_DOMAIN );
}
然后可以使用 setcookie 函數獲取 cookie。
echo "My cookie: " . $_COOKIE[$name];
默認情況下,WordPress 使用 cookie 來管理登錄的用戶會話和身份驗證。 如果用戶填寫評論表,它還使用 cookie 來記住用戶的姓名和電子郵件地址。
但是,您網站上的許多 WordPress 插件也可能設置自己的 cookie。 例如,OptinMonster 允許您向新訪問者和回訪者顯示不同的電子郵件選擇表單,它通過使用 cookie 來實現這一點。
如果您在您的網站上使用第三方服務,如 Google Analytics 或 Google AdSense,那么他們也可能在您的網站上設置 cookie。
因此,您也可以以相同的方式將 cookie 添加到您自己的 WordPress 網站。
您需要將代碼添加到主題的functions.php 文件或特定於站點的插件中。 如果您以前沒有這樣做過,那么請查看如何在 WordPress 中復制和粘貼代碼片段。
首先我們將使用 PHP 中的setcookie()
函數。 該函數接受以下參數。
現在讓我們向您的 WordPress 網站添加一個代碼片段。 此代碼在 cookie 中存儲用戶訪問您網站時的確切時間戳。
function wpb_cookies_tutorial1() {
$visit_time = date('F j, Y g:i a');
if(!isset($_COOKIE[$wpb_visit_time])) {
// set a cookie for 1 year
setcookie('wpb_visit_time', $current_time, time()+31556926);
}
}
您現在可以訪問您的網站,然后檢查您的瀏覽器 cookie。 您會找到一個名為wpb_visit_time
的 cookie。
隨意修改代碼以使其對您的網站更有用。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.