【问题标题】:How add new session with session name on Wordpress如何在 Wordpress 上添加带有会话名称的新会话
【发布时间】:2018-08-29 19:50:30
【问题描述】:

我在 wordpress 中添加具有自定义名称的新会话时遇到问题,

我试着把它放在function.php 中,它的工作:

function myStartSession() {
    session_destroy();
    session_name('my_session');
    session_start();
}
add_action('init', 'myStartSession', 1);

但是当将相同的代码放在其他文件中时,例如 single.php 不再起作用

我尝试仅将我的函数放入 functions.php 并将 add_action 放入 single.php 但同样的问题,不起作用

如何使用自定义名称创建会话并在需要时调用

【问题讨论】:

  • 您在哪个页面查看会话?单页还是其他页面?
  • 仅限search.php和single.php

标签: php wordpress session cookies


【解决方案1】:

把代码改成这样:

function myStartSession() {
  session_destroy();
  session_name('my_session');
  session_start();
}
add_action('my_action_name', 'myStartSession');

然后在你的模板文件中,如你提到的 single.php,如果你想调用函数添加:

 do_action('my_action_name');

【讨论】:

  • 我试过了,但是不行,当把do_action放到function.php里面就可以了,我不知道为什么在function.php外面不行,有什么办法吗
  • 你把它放在single.php的什么地方?我们可以看看一些代码吗?
  • 我在 single.php 和 page.php 和 search.php 中尝试它,除了 functions.php 之外的所有文件都不起作用,我的代码就像我放在顶部一样,我现在只想创建新会话但是不能
  • 抱歉耽搁了,我将我的评论和屏幕截图发布在其他页面大声笑,屏幕截图在这里:ibb.co/bXW9v9 我使用默认文件不编辑任何内容
  • 更多信息:我在header.php 中添加了do_action,它可以工作,但在single.php 中不起作用,我正在尝试将主题更改为默认的wordpress 主题twentyseventeen,但同样的问题在single.php / 已编辑:我发现问题在哪里,当将 do_action 放在 get_header(); 之前它可以工作但在标题不起作用之后,标题中有什么问题!
【解决方案2】:

不需要销毁会话,只需要检查它是否没有启动并启动它就可以了

function myStartSession() {
   if( ! session_id() ) {
     session_start();
   }
   $_SESSION['custom_name'] = 'value';
}
add_action('init', 'myStartSession', 1);

【讨论】:

  • 不工作,我发现有些东西可能会有所帮助,当删除 wp_head();从头开始它是工作,所以对我来说,从头休息会议开始,有什么感觉可以检测到它吗?
  • 用'wp_head'替换'init'
猜你喜欢
  • 2021-11-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-03
  • 2015-02-23
相关资源
最近更新 更多