当前位置:首页WP教程为WordPress添加登录日志

为WordPress添加登录日志

如果你的WordPress开放注册,很有可能需要一个登录日志记录,方便随时查看会员登录情况,这里简单的说一下实现原理。首先需要创建一个数据库表用来存放登录日志信…

如果你的WordPress开放注册,很有可能需要一个登录日志记录,方便随时查看会员登录情况,这里简单的说一下实现原理。

首先需要创建一个数据库表用来存放登录日志信息,字段分别是:

  • ID:日志ID;
  • user_login:用户登录账号,可能是用户名,也可能是邮箱;
  • log_time:登录时间;
  • ipaddress:用户IP地址;
  • message:消息,登录失败则记录错误信息;

WordPress创建数据库表的代码可以参考:

global $pagenow;if ( is_admin() && isset( $_GET[\'activated\'] ) && $pagenow == \'themes.php\' ) {global $wpdb;$table_name = $wpdb->prefix . \'logs\';if( $wpdb->get_var(\"SHOW TABLES LIKE \'$table_name\'\") != $table_name ) {$sql = \'CREATE TABLE IF NOT EXISTS \' . $table_name . \' (ID bigint(20) NOT NULL PRIMARY KEY AUTO_INCREMENT,user_login varchar(250) NOT NULL,log_time datetime NOT NULL,ipaddress text NOT NULL,message text) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;\';require_once(ABSPATH . \'wp-admin/upgrade-functions.php\');dbDelta($sql);}}

将以上代码放到主题文件的functions.php中,当启用主题的时候会判断wp_logs表是否存在,不存在则创建。

写入登录日志的代码如下:

function bzg_login_logs($user_login, $user_password) {global $wpdb;$user = wp_authenticate($user_login, $user_password);$data = array(\'user_name\' => $user_login,\'log_time\' => date(\'Y-m-d H:i:s\', current_time(\'timestamp\') ),\'ipaddress\' => $_SERVER[\'REMOTE_ADDR\'] == \'::1\' ? \'127.0.0.1\' : $_SERVER[\'REMOTE_ADDR\'],\'message\' => \'登录成功\',);if ( is_wp_error($user) ) {$message = $user->get_error_message();$data[\'message\'] = $message;$data[\'message\'] = preg_replace(\'/<a[^>]*>.*<\\/a>/i\', \'\', $data[\'message\']);$data[\'message\'] = wp_strip_all_tags($data[\'message\'], true);}$wpdb->insert(\'wp_logs\', $data);}add_action(\'wp_authenticate\', \'bzg_login_logs\', 10, 2 );

这里用到了钩子wp_authenticate,WordPress登录是以wp_signon()函数来完成的,在该函数中定义了钩子wp_authenticate,我们通过wp_authenticate()函数验证登录信息是否正确,然后将结果写入日志。

当然,你可能还需要一个页面来输出登录日志列表,更好的办法是写一个插件来实现所有需求。

温馨提示:

文章标题:为WordPress添加登录日志

文章链接:https://www.jitheme.com/2507.html

更新时间:2024年03月28日

1.本站大部分内容均收集于网络!若内容若侵犯到您的权益,请发送邮件至:service@jitheme.com,我们将第一时间处理!

2.资源所需价格并非资源售卖价格,是收集、整理、编辑详情以及本站运营的适当补贴,并且本站不提供任何免费技术支持。

3.所有资源仅限于参考和学习,版权归原作者所有,更多请阅读极(子)主题网络服务协议

给TA打赏
共{{data.count}}人
人已打赏
WP教程

WordPress短代码添加方法

2023-3-8 22:09:32

WP教程

WordPress输出无链接纯文本标签名称

2023-3-8 22:09:35

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
购物车
优惠劵
有新私信 私信列表
搜索
  • 支付宝对文章极(子)主题购买、授权及程序下载发布评论!
  • 极主题1380参与回答 这个菜单很漂亮的!非常感谢!
  • 小蔡参与回答 我已经解决了,找到了往期问答记录非常感谢!
  • 无言发布问答图片里这标题哪里改? 等您回答!
  • 沐颜小栈-MUOOY.CN发布问答文章评论框上移错位,下个版本几个优化一下 等您回答!
  • 沐颜小栈-MUOOY.CN对文章测试子主题灯箱幻灯片效果发布评论!
  • 沐颜小栈-MUOOY.CN发布问答老胡,可不可以在子主题里面把下载页面搞一下 等您回答!
  • 极主题1380参与回答 测试回答问题!!!!非常感谢!
  • Cik参与回答 安装一个插件,晨风自定义非常感谢!
  • 百度🔍达人圈参与回答 可以复制啊 开启防盗非常感谢!
  • YESICAN参与回答 好的好的谢谢啦非常感谢!