17713433920 info@mac163.com
在php中自动进行wordpress管理员登录
在php中自动进行wordpress管理员登录

今天的帖子只是一小段,我将向您展示如何在WordPress网站上安装一个简洁的小功能。如果安全使用,这将非常方便。它设计用于WordPress网站,该网站为用户提供了一个通用帐户来登录。例如,在许多后端WordPress演示中,作者将创建一个“演示”帐户,供潜在客户登录并使用其产品。通常,作者会简单地显示一句话:

用户名: demo
密码: demo

这有点行人。当然,我们可以使该演示看起来更精简和专业吗?我将给您一个简短的代码片段,以使用这些凭据自动登录WordPress管理员。可以将其放入主题的功能文件中,也可以将其放入自己的插件文件中并激活。

如果这样做,可能会很有用;

  • 您的站点有一个通用帐户,匿名用户可以登录。
  • 您需要一个“单击”登录链接。
  • 您想通过提供一种快速有效的演示途径来最大程度地减少产品演示转换,从而减少所需步骤。
  • 您想将访问者直接定向到相关位置(例如,“设置”页面)。

重要提示:切勿使用此功能登录有实力的帐户;例如。管理员/编辑者帐户等。
请谨慎使用此代码段。

好的,就像我在其他教程中所做的那样,我将首先为您提供完整的带注释的代码,以便那些不喜欢阅读的人可以直接尝试使用它。以下代码段已以独立插件的形式设置(我个人喜好)。

/*
Plugin Name: Auto Login
Plugin URI: http://hbt.io/
Version: 1.0.0
Author: Harri Bell-Thomas
Author URI: http://hbt.io/
*/

function autologin() {
	// PARAMETER TO CHECK FOR
	if ($_GET['autologin'] == 'demo') {
		
		// ACCOUNT USERNAME TO LOGIN TO
		$creds['user_login'] = 'demo';
		
		// ACCOUNT PASSWORD TO USE
		$creds['user_password'] = 'demo';
		
		$creds['remember'] = true;
		$autologin_user = wp_signon( $creds, false );
		
		if ( !is_wp_error($autologin_user) ) 
			header('Location: wp-admin'); // LOCATION TO REDIRECT TO
	}
}
// ADD CODE JUST BEFORE HEADERS AND COOKIES ARE SENT
add_action( 'after_setup_theme', 'autologin' );

用法

这非常容易使用。帐户用户名和密码在插件文件(上面的代码)中指定,登录只需访问即可;http://example.com/wp-login.php?autologin=demo

您应该立即重定向到wp-admin,并登录到指定的帐户。如果凭据不正确,您应该只需要照常登录即可。

定制

此代码段非常易于定制。实际上,您只需要编辑3件事,所有这些更改都将在以下代码块中进行(完整代码的第11至17行)

if ($_GET['login'] == 'dummy_account') {

        // ACCOUNT USERNAME TO LOGIN TO
        $creds['user_login'] = 'dummy';

        // ACCOUNT PASSWORD TO USE
        $creds['user_password'] = 'pa55word';

在第一行,您将看到URL参数的条件检查。上面的代码块将进行检查;wp-login.php?login = dummy_account

这些值可以是您想要的任何值,但请避免使用原始的WordPress参数,例如“ loggedout”,“ action”和“ redirect_to”。第4行是您指定用于登录的用户名的位置;自定义的代码段将尝试登录到“虚拟”帐户。您可能会猜到,第7行是您指定密码的位置。上面的密码是“ pa55word”。填写这些值,您应该一切顺利!

扩充功能

目前,我们的代码段仅设置为自动登录一个帐户。如果我们想要不同帐户的不同登录链接怎么办?这是非常快速且容易做到的,不需要您一次又一次重复整个代码段。请在下面查看我的解决方案。

/*
Plugin Name: Auto Login
Plugin URI: http://hbt.io/
Description: Create convenient auto-login links to quickly login to generic accounts. Configure source code to make changes.
Version: 1.0.0
Author: Harri Bell-Thomas
Author URI: http://hbt.io/
*/

// Declare global var's
global $login_parameter, $accounts;

// THE PARAMETER TO CHECK FOR
// eg. http://exmaple.com/wp-login.php?param_name=account
$login_parameter = "autologin";

// ACCOUNT CODE BLOCK
$accounts[] = array(
				"user" => "demo",
				"pass" => "demo",
				"location" => "wp-admin",
			  );
// END ACCOUNT CODE BLOCK

// EDIT AND REPEAT CODE BLOCK FOR AS MANY ACCOUNTS AS NEEDED

// Another example iteration
$accounts[] = array(
				"user" => "tcwp",
				"pass" => "demo",
				"location" => "wp-admin/?tcwp-sent-me",
			  );


// SEE PREVIOUS EXAMPLE FOR DETAILS ABOUT THIS FUNCTION
function autologin() {
	global $login_parameter, $accounts;
	foreach ($accounts as $account) {
		if ($_GET[$login_parameter] == $account['user']) {
			$creds['user_login'] = $account['user'];
			$creds['user_password'] = $account['pass'];
			$creds['remember'] = true;
			$autologin_user = wp_signon( $creds, false );
			if ( !is_wp_error($autologin_user) ) 
				header('Location: ' . $account['location']); 
		}
	}
}
add_action( 'after_setup_theme', 'autologin' );

从本质上讲,这基本上是相同的,但是有一个厚脸皮的foreach循环以及帐户数组。autologin()函数的结构是相同的,不同的是每个帐户都重复了它的代码(使用foreach循环)。现在,所有相关的详细信息都存储在全局数组中。上面的示例设置了2个帐户,但是我们的代码段可以容纳所需的任意数量。要添加其他帐户,只需根据需要自定义并添加以下许多代码块。

// ACCOUNT CODE BLOCK
$accounts[] = array(
				"user" => "anotheraccount",
				"pass" => "public_password",
				"location" => "http://YouCanPutURLsHereToo.com/",
			  );
// END ACCOUNT CODE BLOCK

您还将注意到,我也已将参数名称移到了全局变量:这不是必需的,但是我这样做只是从autologin()函数中删除所有硬编码值。

结论

此代码段只是一个为轻量级使用而设计的简单功能,例如在产品演示站点上,但确实有可能用于更复杂的登录方案。其余代码应该是不言自明的,但是如果您对我所做的事情或为什么要做的事情有任何疑问,请在下面留下评论或鸣叫我。


微信二维码

微信扫描二维码联系我们!
我们在微信上24小时期待你的声音
提供外贸路由器设备产品,轻松翻墙,解答:WP主题推荐,WP网站建设,Google SEO,百度SEO,专业服务器环境搭建等!


需要提供WordPress主题/插件的汉化服务可以随时联系我们!另外成品WordPress网站以及半成品WordPress网站建设,海外Google SEO优化托管服务,百度SEO优化托管服务,Centos/Debian服务器WP专用环境搭建,WP缓存服务器搭建,我们都是你的首选,拥有多年WP开源程序服务经验,我们一直在坚持客户体验,没有最好,只有更好!
回到顶部