通过PHP脚本自动登陆WordPress

WordPress的密码不记得了怎么办?除了通过邮件找回密码、登录phpmyadmin修改密码以外,还可以通过PHP脚本自动登陆Wordpress。比如创建一个autologin.php放到wp根目录下,然后访问这个文件,就自动用指定的用户名登录站点,随后删除该文件即可。

为什么要自动登陆WordPress

  • 知道网站管理的用户名以及cpanel信息,不知道密码,也不能修改用户的密码。
  • 本地开发图省事,不想每次都要登陆站点。

自动登陆Wordpress的PHP脚本

将如下内容写入一个文件,名字叫什么都可以,比如autologin.php,放到网站根目录下。

<?php
require('wp-blog-header.php');
// Automatic login //
$username = "admin";
$user = get_user_by('login', $username );
// Redirect URL //
if ( !is_wp_error( $user ) )
{
    wp_clear_auth_cookie();
    wp_set_current_user ( $user->ID );
    wp_set_auth_cookie  ( $user->ID );
    $redirect_to = user_admin_url();
    wp_safe_redirect( $redirect_to );
    exit();
}

然后打开浏览器,输入该文件地址,例如:https://www.solagirl.net/autologin.php

这样就能用指定的用户名自动登录WordPress了,在线站点上请勿保留此文件。

让Wordpress时刻保持登陆状态

如果要让WordPress不论何时都自动登陆,可以用下面的代码,代码写成插件或者放到主题的functions.php里。

function auto_login() {
    if( is_user_logged_in() ){
        return;
    }
    $loginusername = 'admin'; //username of the WordPress user account to impersonate
    // get this username's ID
    $user = get_user_by( 'login', $loginusername );
    if( ! $user ){
        return;
    }
    $user_id = $user->ID;
    // login as this user
    wp_set_current_user( $user_id, $loginusername );
    wp_set_auth_cookie( $user_id );
    do_action( 'wp_login', $loginusername, $user );
    // redirect to home page after logging in
    wp_redirect( home_url() );
    exit;
}
add_action( 'wp', 'auto_login', 1 );

这段代码的作用:只要访问站点,就会自动登陆。适合某些特殊用途,比如本地站点测试不想重复登陆。

发表评论

您的电子邮箱地址不会被公开。