2016-11-09 22 views
1

默認情況下,WordPress的爲登錄用戶創建的cookie,看起來像這樣:跟蹤登錄用戶的cookie存在 - WordPress的

Cookie Name: wordpress_logged_in_a32e4aa16e20e5346cda1 

我檢查WordPress的核心文件(WP-包括/默認constants.php)從這個cookie正在被創建。以及我如何在wordpress_logged_in_之後看到cookiehash是使用md5()完成的網站網址。

if (!defined('COOKIEHASH')) { 
    $siteurl = get_site_option('siteurl'); 
    if ($siteurl) 
     define('COOKIEHASH', md5($siteurl)); 
    else 
     define('COOKIEHASH', ''); 
} 
if (!defined('LOGGED_IN_COOKIE')) 
    define('LOGGED_IN_COOKIE', 'wordpress_logged_in_' . COOKIEHASH); 

我需要檢查該cookie是否存在或有值象下面這樣:

if(isset($_COOKIE['wordpress_logged_in_a32e4aa16e20e5346cda1']) && !empty($_COOKIE['wordpress_logged_in_a32e4aa16e20e5346cda1'])){ 
    //do something 
} 

但現在我正在測試的網站,該網站的網址是不同的,有一次我去現場,現場網址將被改變,cookiehash也將被改變。而且我不希望在上線後或者在我的functions.php文件中將新散列複製並粘貼後出現問題。

有沒有一些動態的方法來檢查這個cookie的存在?

回答

1

您可以使用Wordpress功能獲取網站URL變量。

get_site_url(); 

<?php echo get_site_url(); ?> 
//Results in the full site URL being displayed: 
http://www.example.com 

讓網站的網址後。用PHP計算其MD5。請注意,要在wordpress模板文件之外使用此功能,您需要在您的php代碼中包含Worpress wp-load.php,其路徑

<?php include '../../../wp-load.php'; ?> 

MD5一旦收到您可以連接字符串,並在支票使用。如果您有困惑,請在評論中告訴我。

編輯:

$siteurl = get_site_option('siteurl'); 
if ($siteurl){ 
    $hashedSiteUrl = md5($siteurl); 
    $finalUserCookieName = 'wordpress_logged_in_'.$hashedSiteUrl; 
} 

if(isset($_COOKIE[$finalUserCookieName]) && !empty($_COOKIE[$finalUserCookieName])){ 
    //some action 
} 

參考:https://developer.wordpress.org/reference/functions/get_site_url/

+0

是的,我確實做到了一些分鐘前。謝謝@Umar Hayat – aidadev

+0

多數民衆贊成在@aidaghazaryan –