如何在wordpress php代码中使用父文件夹中的会话变量

如何在wordpress php代码中使用父文件夹中的会话变量,php,wordpress,session,Php,Wordpress,Session,我已经开发了一个网站与登录和注册。在该网站的“博客”文件夹中有一个wordpress博客。我需要检查用户是否登录到博客。所以我可以在“登录”和“仪表板”这样的按钮上添加“登录”(如果未登录)和“仪表板”(如果已登录) 在父文件夹的php文件中,我这样写 <?php session_start(); $_SESSION['username'] = $_POST['username']; ....... ....... ?> 我在wordpress博客的php文件中使用了以下代码,

我已经开发了一个网站与登录和注册。在该网站的“博客”文件夹中有一个wordpress博客。我需要检查用户是否登录到博客。所以我可以在“登录”和“仪表板”这样的按钮上添加“登录”(如果未登录)和“仪表板”(如果已登录)

在父文件夹的php文件中,我这样写

<?php
session_start();
$_SESSION['username'] = $_POST['username'];
.......
.......
?>

我在wordpress博客的php文件中使用了以下代码,以检查用户是否已登录并显示用户名

<?php
session_start();
echo $_SESSION['username'];
....
....
?>

但是它给了我这样的错误,并且没有显示用户名


“警告:session_start():无法发送会话缓存限制器-第42行C:\xampp\htdocs\it itech\blog\wp includes\general template.php:2343中已发送的头(输出从C:\xampp\htdocs\it itech\blog\wp content\themes\header.php开始)”

发生此错误是因为输出是在会话开始之前发送的。您需要转到此页面
标题.php
:第42行,其中包含名为
general template.php的文件,并且在会话开始之前,它不会给出输出。

您应该只编辑主题文件。听起来你可能正在编辑WordPress核心文件。您的会话_start();应该放在/wp content/themes/blocking/中header.php的最顶端,最好是选中

if (session_status() == PHP_SESSION_NONE) {
    session_start();
}

然后,您可以使用您的会话数据—同样,您应该检查它是否已在页面模板中的任何位置进行了设置(isset等),理论上可能会再次使用header.php。

尝试在您的主题函数中使用它。php

add_action('init', 'myStartSession', 1);
add_action('wp_logout', 'myEndSession');
add_action('wp_login', 'myEndSession');

function myStartSession() {
if(!session_id()) {
    session_start();
}
}

function myEndSession() {
session_destroy ();
}

那么在这之后添加我的代码?这段代码实际上是做什么的?试着找出为什么在第2343行的
general template.php
中会有输出,看看你在那里有什么代码。第2343行说这包括url('wlwmanifest.xml'),“/>,”\n";明白了,这个xml文件正在开始输出,并且包含了一个新行字符。那么我应该怎么做才能解决这个问题呢?从博客的php gile中删除并转到header.php,在header.php中的第42行之前放置
session\u start()
代码行。是的,我这样做了,但是当我回显$\u session['username']时,如果你<代码>变量转储($\会话)就在我给你的代码之后你得到了什么?我猜你在网站的非Wordpress部分得到了什么?