今天的帖子只是一小段,我将向您展示如何在WordPress网站上安装一个简洁的小功能。如果安全使用,这将非常方便。它设计用于WordPress网站,该网站为用户提供了通用帐户登录。例如,在许多后端WordPress演示中,作者将创建一个“演示”帐户,供潜在客户登录并使用他/她的产品。通常,作者会简单地显示一句话:
用户名: 演示
密码: 演示
这有点行人。当然,我们可以使该演示看起来更加精简和专业吗?我将为您提供一个简短的代码段,以使用这些凭据自动登录WordPress管理员。可以将其放入主题的功能文件中,也可以将其放入自己的插件文件中并激活.
如果这样做,可能会很有用;
- 您的网站有一个通用帐户,匿名用户可以登录.
- 您需要一个“一键式”登录链接.
- 您想通过提供快速有效的演示途径,最大程度地减少所需步骤,来最大程度地提高产品演示转换.
- 您想将访问者直接定向到相关位置(例如“设置”页面).
重要:切勿使用此功能登录有实力的帐户;例如。管理员/编辑者帐号等.
仔细使用此代码段.
好的,就像我在其他教程中所做的那样,我将首先为您提供完整的带注释的代码,以便那些不喜欢阅读的人可以直接尝试使用它。以下代码段以独立插件的形式设置(我个人喜好).
/ *
插件名称:自动登录
插件URI:http://hbt.io/
版本:1.0.0
作者:哈里·贝尔·托马斯
作者URI:http://hbt.io/
* /
函数autologin(){
//要检查的参数
如果($ _GET ['autologin'] =='demo'){
//要登录的帐户用户名
$ creds ['user_login'] ='demo';
//使用帐户密码
$ creds ['user_password'] ='演示';
$ creds ['remember'] = true;
$ autologin_user = wp_signon($ creds,false);
如果(!is_wp_error($ autologin_user))
header('Location:wp-admin'); //位置重定向到
}
}
//仅在发送标题和Cookie之前添加代码
add_action('after_setup_theme','autologin');
用法
使用起来非常简单。帐户用户名和密码是在插件文件中指定的(上面的代码),只需登录即可登录。 http://example.com/wp-login.php?autologin=demo
您应该立即重定向到wp-admin,并登录到指定的帐户。如果凭据不正确,您应该只看到正常的登录表单.
定制
此代码段非常易于定制。实际上,您只需要编辑3件事,所有这些更改都将在以下代码块中进行(完整代码的第11至17行)
如果($ _GET ['login'] =='dummy_account'){
//要登录的帐户用户名
$ creds ['user_login'] ='虚拟';
//使用帐户密码
$ creds ['user_password'] ='pa55word';
在第一行,您将看到对URL参数的条件检查。上面的代码块将进行检查; wp-login.php?login = dummy_account
这些值可以是您想要的任何值,但请避免使用WordPress原始参数,例如“注销”,“操作”和“ redirect_to”。第4行是您指定用于登录的用户名的位置;自定义代码段将尝试登录“虚拟”帐户。您可能会猜到,第7行是您指定密码的位置。上面的密码是“ pa55word”。填写这些值,您应该会很好!
扩充功能
目前,我们的代码段仅设置为自动登录一个帐户。如果我们想为不同的帐户使用不同的登录链接怎么办?这是非常快速,容易的操作,不需要您一次又一次重复整个代码段。下面看看我的解决方案.
/ *
插件名称:自动登录
插件URI:http://hbt.io/
说明:创建方便的自动登录链接以快速登录通用帐户。配置源代码进行更改.
版本:1.0.0
作者:哈里·贝尔·托马斯
作者URI:http://hbt.io/
* /
//声明全局变量
全局$ login_parameter,$ accounts;
//要检查的参数
//例如http://exmaple.com/wp-login.php?param_name=帐户
$ login_parameter =“自动登录”;
//帐户代码块
$ accounts [] = array(
“用户” =>“演示”,
“通过” =>“演示”,
“位置” =>“ wp-admin”,
);
//结束帐户代码块
//根据需要编辑和重复代码块
//另一个示例迭代
$ accounts [] = array(
“用户” =>“ tcwp”,
“通过” =>“演示”,
“位置” =>“ wp-admin /?tcwp-sent-me”,
);
//有关此功能的详细信息,请参阅上一个示例
函数autologin(){
全局$ login_parameter,$ accounts;
foreach($ accounts as $ account){
如果($ _GET [$ login_parameter] == $ account ['user']){
$ creds ['user_login'] = $ account ['user'];
$ creds ['user_password'] = $ account ['pass'];
$ creds ['remember'] = true;
$ autologin_user = wp_signon($ creds,false);
如果(!is_wp_error($ autologin_user))
header('Location:'。$ account ['location']);
}
}
}
add_action('after_setup_theme','autologin');
从本质上讲,这基本上是相同的,但是有一个厚脸皮的foreach循环以及帐户数组。 autologin()函数的构造是相同的,不同的是每个帐户都重复了它的代码(使用foreach循环)。现在,所有相关的详细信息都存储在全局数组中。上面的示例设置了2个帐户,但是我们的代码段可以容纳所需的任意数量。要添加其他帐户,只需根据需要自定义并添加以下许多代码块.
//帐户代码块
$ accounts [] = array(
“用户” =>“另一个帐户”,
“通过” =>“ public_password”,
“ location” =>“ http://YouCanPutURLsHereToo.com/”,
);
//结束帐户代码块
您还将注意到,我也将参数名也移到了全局变量中:这不是必需的,但是我这样做只是从autologin()函数中删除所有硬编码值.
结论
该片段只是一个为轻量级使用而设计的简单功能,例如在产品演示站点上,但确实有可能用于更复杂的登录方案。其余代码应该是不言自明的,但是如果您对我所做的事情或为什么要做的事情有任何疑问,请在下面留下评论或鸣叫我。如果您有任何反馈/建议/想法,请在下面的评论部分中发表评论!