2016-11-09 5 views
1

、ワードプレスは次のようになります。これはクッキーを作成します。トラック - ログインユーザーのためにデフォルトでワードプレス

Cookie Name: wordpress_logged_in_a32e4aa16e20e5346cda1 

私はからwordpressのコアファイル(WP-含ま/デフォルト-constants.php)をチェックこのクッキーが作成されている場所。そして、私はwordpress_logged_in_の後にcookiehashを見たのはmd5()で終わったあなたのサイトURLです。今

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

しかし、私はテストのウェブサイト上で働いていると、サイトのURLが異なっていると私は生きて行くと、サイト:

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); 

私はクッキーが存在するか、以下のような値を持っているかどうかを確認する必要がありますURLが変更され、クッキーハッシュも変更されます。ライブやライブ後に問題を抱えて、functions.phpファイルに新しいハッシュをコピー&ペーストしたくないのです。

このクッキーの存在を確認するための動的な方法はありますか?

答えて

1

Wordpress機能を使用してサイトURL変数を取得できます。

get_site_url(); 

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

サイトのURLを取得した後。 PHPでMD5を計算します。ワードプレステンプレートファイルの外でこの関数を使用するには、パスを使用して、PHPコードにWorpress wp-load.phpを含める必要があります。

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

MD5が受信されると、文字列を連結してチェックすることができます。あなたが混乱している場合は、コメントで私に教えてください。

EDIT:

$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 –

関連する問題