2012-04-02 16 views
0

WordPressのインストールでCookieを設定するときに少し問題があります。ローカルホストのWordPressでCookieを設定する

は、ここに私のコードです:理論的には

function write_cookies() { 
    setcookie("category", get_query_var('cat'), time() + 3600 * 24, COOKIEPATH, '', false); 
    print($_COOKIE["category"]); 
} 
add_action('init', 'write_cookies'); 

、この出力する必要がありcategoryIdが、何も動作しているようだありません。

ローカルホストでは、クッキードメインとして機能する空の文字列を提供していますが、出力は得られません。私はまた、'localhost','.localhost','127.0.0.1',falseおよびNULLをドメインとして試しました。 COOKIEPATH定数は現在出力しています'/'

私はChrome経由でCookieを読んでいますが、ページのCookieに変更はありません。

UPDATE:私は、このインスタンスでCookieを必要とする理由これまでのところ、私が説明しましょう答えを

おかげで...

は基本的に、私の投稿ページに、私は他の記事を表示したいです同じカテゴリーで。複数のカテゴリを持つユーザーの場合、ユーザーが投稿に到達するためにどのルートを保存したかを意味します。実際の世界の例を挙げておきます:

ユーザーは、家から業界ニュースに移動し、製造業部門の新しい資金調達を行い、地元の政治家を活性化させます。今、このセクションのその他の投稿では、Industry Newsの投稿を表示したいと思いますが、特定の投稿は業界ニュースと政治ニュースの両方で設定されているので、どのルートをとったのかはどうやって教えてください。

これは、最初に、wp_get_referer()を分析してポストの前に来たカテゴリを特定するように設定されています。しかし、この「その他の投稿」セクションを使用して、Industry NewsとRegional Newsの両方に分類されるManufacturing SectorのNew Regional Developmentsというタイトルのポストに移動すると、wp_get_refererはロジック内で必要なカテゴリではなく、前の投稿を返します。

私の解決策は、カテゴリのIDを格納し、これを今後のすべてのロジックで使用して、「その他の投稿」セクションに表示する正しいカテゴリを判断することでした。

私は知っていますが、この特定のフローを提供するには設計とクライアントの両方のニーズが限られています。示唆したように

、私はディスプレイに自分のコードを更新しました:

function write_cookies() { 
    setcookie("category", get_query_var('cat'), false, '/', str_replace('http://www','',get_bloginfo('url'))); 
    print('test: '.$_COOKIE["category"]); 
} 
add_action('init', 'write_cookies'); 

これは、印刷されたクッキーずにtest:を出力します。

答えて

1

私はワードプレスのようなものを使用して私のための適切なドメインを理解させる:str_replace('http://www','',get_bloginfo('url'))。つまり、wordpressのデフォルトカテゴリでは不十分な場合です。

一般に、Wordpressのデフォルトのカテゴリとタグ構造を使用することは、生のクッキーよりもはるかに好ましいことです。それではなぜもう一度クッキーが必要だったのですか?

+0

「理由」の説明については、私のアップデートをご覧ください。ややこしい。 –

1

あなたは/アクセスhttp://localhostクッキーを設定することはできませんクローム

http://code.google.com/p/chromium/issues/detail?id=56211

の既知の制限があります。 Chromeで奇妙な問題。

+0

私はそれを知らなかった。しかし、もう一度、組み込みのカテゴリは仕事をしませんか? –

+1

+1はバグを指摘しています。しかし、print($ _ COOKIE ["category"]);は他のブラウザでは何もしません。 –

0

WordPress以外のインストールでさまざまなCookieドメインをテストしたところ、localhost環境で変数の設定に成功したドメインは''つまり空の文字列でした。ここで

は今私のコードです:

function write_cookies() {  
    setcookie("category", get_query_var('cat'), false, '/', '',false); 
} 

それは、ポストループ内からではなく「initは」イベントから呼ばれていますので、私もそれを調整してきた、これは私にかなりの程度へのアクセス複数の変数を提供しますinitイベントよりもクッキーに設定する必要があります。

関連する問題