如何将变量发送到wordpress中的function.php

时间:2016-01-14 07:47:54

标签: php wordpress function cookies

我想在wordpress博客中使用onclick功能保存cookie。所以我把这段代码放在function.php

add_action( 'init', 'setting_my_first_cookie' );

function setting_my_first_cookie() {

echo $v_username;
echo "This can be echo";
setcookie('username' , 'Rajeasdasdsdh' , time()+30*24*60*60);
}

关于index.php

<?php 
global $v_username;
$v_username="demo"; 
$v_value="asd";
?>

<th><a href="" onclick="setting_my_first_cookie()">Set Cookie</a></th>

我正在使用此代码重新启动此Cookie:

<?php
// Accessing an individual cookie value
echo $_COOKIE["username"];
?>

一切正常,但我无法使用变量设置cookie。我无法通过$v_username来运作。怎么做? 我希望在我的函数$v_username

中回显或提醒setting_my_first_cookie()

3 个答案:

答案 0 :(得分:0)

您可以在index.php上使用include_onceinclude

尝试使用index.php:

的代码
<?php 
global $v_username;
$v_username="demo"; 
$v_value="asd";
include_once('function.php')    
?>

<th><a href="" onclick= <?php setting_my_first_cookie(); ?> >Set Cookie</a></th>

答案 1 :(得分:0)

在您的特定情况下,问题是:

您挂钩add_action( 'init', 'setting_my_first_cookie' );的这个钩子会在您的应用程序中的特定位置运行您的函数setting_my_first_cookie,在这种情况下,根据Codex,

  

在WordPress完成加载之后但在发送任何标题之前

因此,如果您尝试调试应用程序,您会看到setting_my_first_cookieindex.php文件之前运行。

但一般来说,使用全局变量将参数传递给函数并不是一种好的做法。

此功能将始终运行,因此您的cookie将始终设置。

答案 2 :(得分:0)

好的,我找到了适合我的解决方案:

我使用java脚本获取PHP变量并使用它们设置cookie。我在 header.php 中添加了此代码,但如果我们将其添加到 function.php

,它也可以正常工作
<script type="text/javascript"> 

function setting_my_first_cookie(variid,variname) {
 var d = new Date();
    d.setTime(d.getTime() + (30*24*60*60*1000));
    var expires = "expires="+d.toUTCString();
    document.cookie = variname + "=" + variid + "; " + "expires; path=/; domain=.cinemoids.com";
}
</script>

<script type="text/javascript"> 

function setting_my_first_cookie_delete(variid,variname) {
   document.cookie = variname + '=; expires=Thu, 01 Jan 1970 00:00:01 GMT; path=/; domain=.cinemoids.com';
}
</script>