首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Wordpress plugindevelopment:is_user_logged_in返回false

Wordpress plugindevelopment:is_user_logged_in返回false
EN

Stack Overflow用户
提问于 2018-08-14 14:31:10
回答 1查看 405关注 0票数 0

我正在开发一个插件,它将管理用户登录。在我的自定义登录表单中,当提交凭据时,我运行以下代码:

代码语言:javascript
运行
AI代码解释
复制
if( isset( $_POST['login'] ) ){

    $login = wp_signon( array(
        'user_login' => $_POST['username'],
        'user_password' => $_POST['password'],
        'remember' => 'true'
    ), true);

    if( is_wp_error( $login ) ){
        echo $login->get_error_message();
    } else {

        $username = $_POST['username'];

        wp_set_current_user( $login->ID, $_POST['username'] );
        wp_set_auth_cookie( $login->ID );
        do_action( 'wp_login', $username );
    }//else

}//if


if( is_user_logged_in() ){ // is_user_logged_in()
    ?><a id="wp-submit" href="<?php echo esc_url( add_query_arg( array( 'ecofriends_logout' => true) ) ); ?>" title="Logout">Logout</a><?php


} else { 
    ecofriends_login_form(); 
}//else

因此,当提交凭据时,它会登录。如果未提交凭据,请检查用户是否已登录以显示注销链接,否则将显示登录表单。

重要的事实是,is_user_logged_in()在这里工作得很好。

在function.php文件中,我创建了一个管理注销的函数:

代码语言:javascript
运行
AI代码解释
复制
function logout(){
if( is_user_logged_in() ){
    wp_logout();
}//if
}//ecofriends_logout

但是,当我调用它时,即使用户刚刚登录,is_user_logged_in()也总是返回false。

附注:我在本地主机上工作,登录表单是在一个页面中使用短码调用的。

谢谢

EN

回答 1

Stack Overflow用户

发布于 2018-08-16 14:15:06

好的,从评论中我认为这就是正在发生的事情。您的插件注销文件在每次请求时都会被调用,您说过会调用login.php ()函数,因此每次都会将用户注销。

您需要在用户触发的操作上调用您的logout()函数,例如单击注销按钮或在您强加的某些条件下。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51843870

复制
相关文章
Apache编译后无法正常工作
因为某个场景的需求,要在一个国产系统Rocky4.2(国产凝思4.2操作系统)上安装Apache,虽说此系统是基于Redhat 5.8开发的,但是发现yum安装源包管理,RPM命令倒是能用,但是底层依赖完全没有,这就尴尬了,so,只能源码编译安装了。
后场技术
2020/09/03
2.9K0
K3组件kdsvrmgr无法正常工作
1.在服务器上创建一个用户名和口令,和客户端登陆的用户名和口令一致的;  2.通过网上邻居访问服务器,如果没有提示输入用户和密码,那么网络没问题;  3.看COM+和DTC服务有没有设置好;  4.是XP sp3系统或Home系统的话,可能不稳定;  5.再者看感染病毒没有。 。
py3study
2020/01/08
4.7K0
vue在IE下无法正常工作,Promise未定义?
用vue写了一个日历组件,在Firefox、Edge、Chrome以及360等浏览器极速模式中运行一切正常,如图:
Yiiven
2022/12/15
4.3K0
vue在IE下无法正常工作,Promise未定义?
为什么redis哨兵集群只有2个节点无法正常工作?
由于redis的响应速度快,每秒支持的并发极高(号称10万),现在redis越来越流行了
JAVA葵花宝典
2019/11/08
7.9K1
安装ElasticSearch无法正常启动
在用docker安装 ElasticSearch 时,能正常创建容器,返回容器ID,但却无法正常启动,使用浏览器访问 127.0.0.1:9200 时无法访问,使用 docker logs 查看错误日志,发现报了两个错:bootstrap checks failed,下面分别是这两个错误的解决方法。
子润先生
2021/06/23
3.8K0
安装ElasticSearch无法正常启动
在用docker安装 ElasticSearch 时,能正常创建容器,返回容器ID,但却无法正常启动,使用浏览器访问 127.0.0.1:9200 时无法访问,使用 docker logs 查看错误日志,发现报了两个错:bootstrap checks failed,下面分别是这两个错误的解决方法。
Petrochor
2022/06/07
3.2K0
安装ElasticSearch无法正常启动
jira无法正常显示图片
jira安装之后,图片在富文本编辑器内能正常显示,但是在附件内无法显示,如果查看会发现图片的连接是127.0.0.1.
obaby
2023/02/23
2.6K0
jira无法正常显示图片
树莓派鼓捣记 - 4b 安装 wiringPi 无法正常运行
通过命令 sudo apt-get install wiringPi 安装,执行命令 gpio readall无法正常运行,是因为安装的版本不支持4b,最新版目前已经支持
晓晨
2020/11/06
1.9K0
正常的工作流程
修改文件,将它们更新的内容添加到索引中。 $ git add file1 file2 file3 你现在为commit做好了准备,你可以使用git diff命令再加上–cached参数,看看哪些文件将被提交(commit)。 (如果没有–cached参数,git diff会显示当前你所有已做的但没有加入到索引里的修改。)你也可以使用git status命令来获得当前项目的一个状况。
用户3004328
2018/09/06
7900
NSTimer 导致UIViewController无法正常释放
原因:当我们使用NSTimer的方法时,定时器对象会对它的target(即self:当前控制器)持有强引用,如果定时器不销毁,则控制器无法释放。
赵哥窟
2018/12/12
1.1K0
jsp无法正常加载CSS样式
今天写项目时,发现jsp页面不能加载css样式 检查css和引入代码都没有问题,重启eclipse和tomcat都没有解决 在浏览器中F12调试查看css文件都没有问题。 后来百度寻找解决方法,终于找
白胡杨同学
2020/04/17
4.2K0
jsp无法正常加载CSS样式
ubuntu下无法正常启动eclipse
最近用SpringMVC+Freemarker+AJAX作了个例子.遇到了一些关于中文编码的问题.通过查资料把问题解决了. 在这里总结一下.
EltonZheng
2021/01/26
1.1K0
小程序<live-pusher>、<live-player>标签无法正常使用?
出于政策和合规的考虑,微信暂时没有放开所有小程序对 <live-pusher> 和 <live-player> 标签的支持:
hhualiu
2019/03/11
2.3K0
小程序<live-pusher>、<live-player>标签无法正常使用?
pip无法正常使用解决办法
python -m pip install xxx 相当于import,叫做当做模块来启动
一点儿也不潇洒
2018/08/07
1.1K0
mongos崩溃后无法重启的问题
从上次重启config节点,或者重新选举90或180天后,所有mongos会同时crash,并且无法重新启动。
MongoDB中文社区
2021/03/01
1.3K0
centos7无法正常启动network
当我们执行systemctl restart network时出以下报错 image.png 解决方法:直接关闭 NetworkManger 服务就好了 systemctl stop NetworkManger
云计算小黑
2021/06/16
1.1K0
Crontab脚本无法正常执行问题
Crontab执行时若有异常首先要到/var/log下查看cron日志文件文件(vi /var/log/cron),也可以使用用tail -f /var/spool/mail/root 查看最近的crontab执行情况。通常在日志中能够查看到异常都是脚本写的不正确导致的,可以手动执行看下具体原因。若在日志中看到脚本正常执行,但是无正确的预期结果,则无非是两种原因:
我是李超人
2020/08/21
2.2K0
点击加载更多

相似问题

Django模板标签可以像Django模板可调用一样使用吗?

124

从django模板标签调用python函数

30

Django -使用模板标签和'with'?

30

Django模板标签

10

Django模板标签

12
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档