Php 使用wordpress中设置的$\会话或$\ COOKIE

Php 使用wordpress中设置的$\会话或$\ COOKIE,php,wordpress,session,cookies,Php,Wordpress,Session,Cookies,我想知道人们是如何进入我的网站的,这样链接就会有一个查询字符串“kw”来识别他们。传入链接如下所示: mysite.com?kw=ABC mysite.com/PAGE?kw=XYZ mysite.com/blog/post?kw=123 我的问题一直是无法获得wordpress中设置的$\u会话或$\u COOKIE。因此,访问mysite.com/blog/(我有wordpress)的用户,我设置如下: if ((isset($_GET['kw']))||(!isset($_COOKIE['

我想知道人们是如何进入我的网站的,这样链接就会有一个查询字符串“kw”来识别他们。传入链接如下所示:

mysite.com?kw=ABC

mysite.com/PAGE?kw=XYZ

mysite.com/blog/post?kw=123

我的问题一直是无法获得wordpress中设置的
$\u会话
$\u COOKIE
。因此,访问mysite.com/blog/(我有wordpress)的用户,我设置如下:

if ((isset($_GET['kw']))||(!isset($_COOKIE['kw']))) {
    setcookie('kw',$_GET['kw'], time()+3600*24, '/',$_SERVER['HTTP_HOST'],false);   
    $_SESSION['kw']=$_GET['kw'];
}
因此,它应该同时设置
$\u会话['kw']
$\u COOKIE['kw']
。但是,如果我转到网站上的另一个页面,
$\u COOKIE
将保持未设置状态,
$\u会话将重新开始。我把
session_start()在my
wp config.php

wordpress是否对这些内容做了一些处理,以防止它们与我网站的其他部分共享


编辑-我注意到,当我加载一个像mysite.com/blog/post?kw=123这样的URL,其中没有存储“123”之后,如果我将光标放在地址栏中并点击return,它将被存储,我可以在外部访问它。如果我重新加载页面,它将不会。这是怎么回事?

U可以使用会话,只需在functions.php中添加一个函数,该函数位于模板目录中

回答


您确定正确调用了session\u start,还是没有修改session\u id?因为$u会话不应该在整个网站上丢弃。在模板目录中,您是指/wp includes还是指主题的functions.php?主题的functions.php
function ur_theme_start_session()
{
    if (!session_id())
        session_start();
}
add_action("init", "ur_theme_start_session", 1);