wordpress后台登录添加验证码

韩万隆前两天才有时间终于把数据全部恢复回来了,心想终于可以愉快的玩站了,可是悲催的是,总是有人用软件暴力破解我的wordpress后台登录密码,一天几乎收到几百封邮件,很是烦人,网上找过方法还是没解决,今晚突然想到,加一个验证码不就可以了吗,除非它是人工暴力破解(不可能这么蠢的)

将以下代码添加到functions.php中即可:

//后台登陆数学验证码
function myplugin_add_login_fields() {
//获取两个随机数, 范围0~9
$num1=rand(0,9);
$num2=rand(0,9);
//最终网页中的具体内容
    echo "<p><label for='math' class='small'>验证码</label><br /> $num1 + $num2 = ?<input type='text' name='sum' class='input' value='' size='25' tabindex='4'>"
."<input type='hidden' name='num1' value='$num1'>"
."<input type='hidden' name='num2' value='$num2'></p>";
}
add_action('login_form','myplugin_add_login_fields');
function login_val() {
$sum=$_POST['sum'];//用户提交的计算结果
switch($sum){
//得到正确的计算结果则直接跳出
case $_POST['num1']+$_POST['num2']:break;
//未填写结果时的错误讯息
case null:wp_die('错误: 请输入验证码.');break;
//计算错误时的错误讯息
default:wp_die('错误: 验证码错误,请重试.');
}
}
add_action('login_form_login','login_val');

WordPress 5.1 “Betty” 发布

WordPress 5.1,取名为“Betty”,以纪念著名的爵士乐歌手Betty Carter,已经可以在后台看到更新推送。

WordPress 5.0之后  - 引入新的区块编辑器的主要版本 – 5.1专注于优化编辑器,特别是提高编辑器的整体性能。此外,此版本为更好、更快、更安全的WordPress铺平了道路,为网站管理员和开发人员提供了一些必要的工具。

站点健康

考虑到安全性和速度,此版本引入了WordPress的第一个站点健康功能。WordPress将开始向运行PHP过期版本的网站的管理员发布通知。当您安装新插件时,WordPress的站点健康功能将根据您正在运行的PHP版本进行检查。如果插件需要的版本不适用于您的网站,WordPress将阻止您安装该插件。

编辑器优化

WordPress 5.1对新编辑器中进行了性能改进。编辑器加载更快,打字更顺畅。预计在接下来的几个版本中会有更多的性能提升。

开发者的福音

多站点元数据

5.1引入了一个新的数据库表来存储与站点相关的元数据,并允许存储与多站点/网络环境相关的任意站点数据。

定时计划Cron API

Cron API已更新为新功能以帮助返回数据,并包含用于修改cron存储的新过滤器。行为的其他更改会影响运行FastCGI和PHP-FPM版本7.0.16及更高版本的服务器上的cron生成。

新的JS构建过程

WordPress 5.1具有一个新的JavaScript构建选项,遵循5.0版本中启动的代码的大量重组。

其他

其他改进包括:

  • 更新WP_DEBUG_LOG常量的值
  • 测试套件中的新测试配置文件wp-config.php常量,新的插件动作挂钩
  • wp_unique_post_slug()WP_User_Querycount_users()新增短路(Short-circuit)过滤器
  • 新增human_readable_duration功能
  • 改进了分类法元数据清理
  • WP_Meta_Query支持通过 LIKE 查询
  • 注册REST API端点时出现新的“做错”通知

…和更多!

禁用WordPress Gutenberg古腾堡编辑器的方法

前短时间,我们在使用WordPress的网友肯定看到5.0版本是让大家强制更新并且使用Gutenberg古腾堡编辑器的。有很多的网友反馈确实是比较难用,主要是与咱们以前编辑习惯不同。我个人认为WordPress官方不会就这么草率的就推出这款编辑器的,肯定后续与主题以及其他功能有所结合。如果我们当前不喜欢使用也可以继续使用传统的编辑器。

在这篇文章中,我整理出两个方法提供给网友选择,我们可以选择其一来解决既要使用WordPress5.0版本,同时还希望使用传统编辑器。我们应该这么做。

第一、安装Disable Gutenberg插件

我们可以看到这个插件安装量还是很大的。看来还是有很多人不想用新的编辑器的。我们直接安装启动就可以了。

第二、安装传统编辑器

我们可以继续安装"Classic Editor"插件,这样就可以禁用WordPress Gutenberg古腾堡编辑器,继续启动安装传统插件。

上面2个方法,选择其一就可以继续使用传统的编辑器。

你可以在后台插件安装界面搜索 Disable Gutenberg 进行在线安装,或者到官方下载:https://wordpress.org/plugins/disable-gutenberg/

已将Disable Gutenberg插件汉化,但是由于插件自身原因,上图部分字段无法应用语言包,但是总体不影响使用了。下载语言包disable-gutenberg-zh_CN,解压后,将里面的两个文件上传到 wp-content/languages/plugins 目录,就可以生效。

Gutenberg编辑器二期开发计划

Gutenberg编辑器已经集成到 WordPress 5.0,但是目前可以使用这个编辑器的地方,仅限于文章正文部分,今天看到官方针对Gutenberg编辑器的二期开发计划,将Gutenberg编辑器应用到正文以外的地方,比如 侧边栏小工具、外观-自定义、菜单 等,一起来看下预览。

小工具

外观 – 小工具

以下就是新旧对比

外观 – 自定义

在外观 – 自定义 界面的小工具编辑

菜单

外观-菜单

前端直接修改

编辑内容块

可以将侧边栏小工具作为一个个模块添加和编辑

小结

从以上计划来看,Gutenberg编辑器几乎无所不能了,后台和前台都可以直接使用,如果WordPress再内置一个前台发布各种文章类型的功能,那就直接完爆了!最后,如果你想试用最新的二期功能,需要安装启用插件: https://wordpress.org/plugins/gutenberg/,Gutenberg编辑器的新功能都会先通过插件来实现。

如果你想了解更多细节,可以看下官方文章:https://make.wordpress.org/core/2018/12/08/gutenberg-phase-2/

WordPress 5.0 正式版发布

WordPress 5.0 正式版已经发布,和之前介绍的一样,该版本主要有两个更新:内置默认编辑器为 Gutenberg,新增官方主题 Twenty Nineteen。

Gutenberg 编辑器

WordPress之前一直在使用 TinyMCE 作为默认的编辑器,也就是现在所说的经典编辑器:

从2016年开始,WP官方就提出来要开发新的模块编辑器,也就是大家现在看到的 Gutenberg 编辑器:

随着新编辑器的到来,编辑界面的很多东西都有所改动,比如之前的 Meta box,这就对主题和插件的兼容有了新的要求,可以说有点伤筋动骨,甚至有些人还复制了 4.9.8 来独立坚持和维护经典编辑器,不过官方也提出了,可以通过 Classic Editor 插件来继续使用经典编辑器到 2021 年,也就是在2021年之前,WordPress程序的版本都会兼容经典编辑器,至于以后如何,那就不得而知了。

新默认主题 Twenty Nineteen

Twenty Nineteen 是新的默认主题,主要是为了新的编辑器 Gutenberg,当然按照时间看,也应该出新主题了。如果你在使用之前的官方默认主题,不用担心,之前的一些主题也是更新兼容 Gutenberg 编辑器的了。

总之,WordPress 5.0 的改动还是非常大的,对主题和插件的兼容也是要考虑的问题,所以,建议大家搭建测试环境,测试主题和插件对新版本的兼容性,再考虑是否升级。当然了,如果仅仅是编辑器的兼容问题,可以使用 Classic Editor 插件来继续使用经典编辑器。

更多介绍请看官方文章:https://wordpress.org/news/2018/12/bebo/

解决 WordPress“正在执行例行维护,请一分钟后回来”

WordPress在升级程序、主题、插件时,都会先切换到维护模式,也就是显示 “正在执行例行维护,请一分钟后回来(Briefly unavailable for scheduled maintenance. Check back in a minute)”,如果升级顺利,也就几秒左右就恢复正常;但是如果由于网速不佳等原因导致升级中断,WordPress就会一直停留在维护模式,不论前台还是后台,都一直显示“正在执行例行维护,请一分钟后回来“。

如何解决这个问题呢?

1.马上通过FTP登录你的网站,删除WordPress根目录下的 .maintenance ,刷新网页即可。

2.但是有时候你会发现,根目录根本就没有 .maintenance!万隆最近就遇到这个问题,最初以为是隐藏了,所以使用SSH登录服务器,但是依旧没有看到,怎么办?其实有一个比较简单的办法,直接新建一个空的txt文本,上传到主机空间中,然后重命名为 .maintenance,然后你会发现 .maintenance 居然不见了!不用担心,重新刷新你的网站,是不是正常了?!

3.如果还是不行,或者你想让它以后可以显示 .maintenance ,那就打开 /wp-admin/includes/class-wp-filesystem-direct.php

找到下面的代码:

	function mkdir($path, $chmod = false, $chown = false, $chgrp = false) {
		// safe mode fails with a trailing slash under certain PHP versions.
		$path = untrailingslashit($path);
		if ( empty($path) )
			return false;
 
		if ( ! $chmod )
			$chmod = FS_CHMOD_DIR;
 
		if ( ! @mkdir($path) )
			return false;
		$this->chmod($path, $chmod);
		if ( $chown )
			$this->chown($path, $chown);
		if ( $chgrp )
			$this->chgrp($path, $chgrp);
		return true;
	}

将其改为:

function mkdir($path, $chmod = false, $chown = false, $chgrp = false) {
 // safe mode fails with a trailing slash under certain PHP versions.
 if ( ! $chmod )
 $chmod = $this->permission;
 
if(ini_get('safe_mode') && substr($path, -1) == '/')
 {
 $path = substr($path, 0, -1);
 }
 
if ( ! @mkdir($path) )
 return false;
 $this->chmod($path, $chmod);
 if ( $chown )
 $this->chown($path, $chown);
 if ( $chgrp )
 $this->chgrp($path, $chgrp);
 return true;
}

然后刷新FTP目录,是不是看到.maintenance了,删除它吧!