WordPress教程

通过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 );

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

8条评论

  1. Pingback: WordPress扫码登录 - 破博客
  2. SOLA,那个buddypress调用它自己的模板,现在搞定了一些,还有一些css样式得修改,对了,有个问题想问问你,你有没有一些好的php的文本工具呢,我发现一个怪的现象,在本地写发了好的.php文件,上传到服务器后,再下载回来修改时发现没有缩进了,你有没有什么好的工具让PHP文本自己缩进呢,谢谢

    1. 那应该不是编辑器问题,是不是传ftp的时候没有设置成二进制模式?如果不设置成二进制模式,且pc端和服务器所用系统不同,就会出类似问题。

      1. 哦,原来是这样的,主机是LINUX的,本地是WIN8.1的系统,怪不得,那你知不知道有没有什么工具可以调整回来呢,谢谢

    1. 上传到网站根目录,直接访问该文件就行了,用完了记得删掉,这个不是给wordpress集成用的

  3. Pingback: 多个wordpress网站共享用户数据的方法 | ~SolagirL~