去掉纹身要多少钱

彻底关闭 WordPress 自动更新和更新检查功能,提高后台运行速度


WordPress 支持在后台就可以自动去检查 WordPress 核心代码,插件和主题的版本,并且支持自动更新,这是非常了不起的功能,让 WordPress 站点时时保持最新版,特别是有安全漏洞出现的时候。

WordPress 自动更新的问题

但是这样也造成了其他一些问题:

1. WordPress 的更新服务器在国外,并且没有在国内开启加速服务,所以 WordPress 在后台检查更新的时候,可能因为各种原因无法顺畅连接上,然后一直卡着,造成 WordPress 后台有时很慢很慢。

2. 自动更新是好事,但是一些插件或者主题改动太大,造成了后台崩溃,那就不是好事了, 特别是生产环境崩了,那就更不是什么好事了,所以对于一些敏感的系统,最好在测试服务器上升级并测试好之后,再到正式生产服务器上升级。

所以综上所述,最好在正式服务器上关闭 WordPress 自动更新功能,在测试服务器上升级更新好之后,再更新到正式服务器,这样保证服务稳定,也能够让 WordPress 后台跑的更快。

关闭自动更新和更新检查功能

那么怎么关闭 WordPress 自动更新和后台更新检查呢?

首先 WordPress 提供了一个常量:AUTOMATIC_UPDATER_DISABLED,在 wp-config.php 文件中将该值设置为 false,就可以关闭自定更新功能。

如果不想改 wp-config.php 文件,WordPress 还提供了一个 automatic_updater_disabled 接口,通过它也可以关闭自动更新:

add_filter('automatic_updater_disabled', '__return_true');

不过你有没有访问后台,WordPress 都会定时检测 WordPress 核心,插件和主题是否有更新了,这个功能是通过定时作业实现的,一共有三个定时作业:

wp_version_check:检测 WordPress 核心代码是不是最新版本。wp_update_plugins:检测 WordPress 插件是不是最新版。wp_update_themes:检测 WordPress 主题是不是最新版。

这三个定时作业,每两天跑一次,不管有没有访问后台,他们都会运行检测你的站点是否需要更新。我们可以通过以下代码实现关闭定时更新检查的作业:

remove_action('init', 'wp_schedule_update_checks'); wp_clear_scheduled_hook('wp_version_check'); wp_clear_scheduled_hook('wp_update_plugins'); wp_clear_scheduled_hook('wp_update_themes');

除了定时作业之外,如果访问 WordPress 后台,WordPress 会每隔 12 小时,就会检测 WordPress 核心,插件和主题是否有更新了。这个就是 WordPress 有时很慢很慢的原因,因为很久没有访问 WordPress 后台,一访问 WordPress 就先去检测更新,所以就显得特别慢,感觉很明显,因为你访问,每隔 12 小时就会检测,所以造成很多人认为 WordPress 很慢。

所以这个每隔 12 小时就检测更新的功能,尤其要关闭,这是后台提速的关键:

remove_action('admin_init', '_maybe_update_core');remove_action('admin_init', '_maybe_update_plugins');remove_action('admin_init', '_maybe_update_themes');

我们这样屏蔽之后,是不是后台就无法获得 WordPress 更新了呢?不是的,当我们进入 WordPress 后台插件管理页面,主题管理界面,以及仪表盘下的更新子页面,无论什么时候进入这个三个界面,WordPress 都会去检测是否有新版本的。

当然也可以把进入这些页面就检测更新的功能去掉,但是个人觉得没有必要,进入具体页面干具体对应的事情,我觉得完全是没有问题,所以这里就不提供相关代码了。

上面这些代码都可以添加到当前主题的 functions.php 文件,也可以在WPJAM Basic 插件中直接勾选屏蔽自动更新功能即可。

那么这样处理之后,如果有更新的时候,就要手动来更新了,建议使用 SSH 安装,升级和迁移 WordPress 博客。

屏蔽 WordPress 自动更新和更新检查功能已经整合到 WPJAM Basic 插件中,并已免费提供下载,点击阅读原文获取。

去掉 WordPress 分类目录 URL 中的 category 最佳方法

WordPress 默认的分类目录 URL 中是带 category 的,比如我爱水煮鱼的 WordPress 的分类目录的 URL:

有些用户博客的分类就是二级目录,希望去掉分类目录 URL 中的 category,实现这样的 URL:

这个如何实现呢?

方式一:使用插件

网上有很多这方面功能的 WordPress 插件,都可以去掉分类目录 URL 中的 category,这些插件的实现方式是把所有的分类都写入 WordPress 的 rewrite 规则。

这样虽然可以解决问题,但是也会造成 rewrite 规则会非常臃肿,反而会使得 WordPress 变慢,并且每次添加分类都要去刷新 rewrite 规则。

方式二:设置分类目录前缀

另外 WordPress 还有一个非常方便的方法,可以说是最简化去掉分类目录 URL 中的 category。

只需要在 WordPress 后台,点击「设置」菜单下的「固定链接」子菜单,将「分类目录前缀」设置为 . 就可以:

方式三:最佳方法

如果仔细观察一下去掉 category 的分类目录和 WordPress 的页面的 URL:

去掉 category 的分类目录 URL:

WordPress 的页面 URL:

是不是这两种页面的页面rewrite 规则是不是一样的,那么我们可以直接使用页面的 rewrite 规则来处理了。

当 WordPress 进入页面 rewrite 规则的时候,我们首先判断一下,当前的 pagename 是不是某个分类的 slug,如果是,就把当前的 query_var 中的 pagename 换成 category_name,这样就可以实现了分类目录页面的正确跳转。

add_filter('request', function($query_vars) { if(!isset($_GET['page_id']) && !isset($_GET['pagename']) && !empty($query_vars['pagename'])){ $pagename = $query_vars['pagename']; $categories = get_categories(['hide_empty'=>false]); $categories = wp_list_pluck($categories, 'slug'); if(in_array($pagename, $categories)){ $query_vars['category_name'] = $query_vars['pagename']; unset($query_vars['pagename']); } } return $query_vars;});

WPJAM Basic 的「优化设置」中的「功能增强」也集成了这个功能,并且还额外增加一个选项,如果博客自定义了其他的自定义分类模式,可以选择设置哪个分类模式应用该功能:

删除WordPress官方评论中自己不需要的内容的方法

通过ftp,进入自己网站的空间,找到主题的functions.php文件,打开此文件。

1、打开function.php文件,

2、在最下面加入以下代码即可。

// 移除网址表单 function url_filtered($fields) { if(isset($fields['url'])) unset($fields['url']); return $fields; } add_filter('comment_form_default_fields', 'url_filtered');

// 移除邮箱地址 add_filter('comment_form_defaults','remove_email'); function remove_email($comment_form_html_arr){ //删除email文本框 unset($comment_form_html_arr['fields']['email']);

//修改评论提醒内容,去掉电子邮件相关的提醒。 $comment_form_html_arr['comment_notes_before'] = '<p class="comment-notes">'.sprintf( ' ' . __( 'Required fields are marked %s' ), '<span class="required">*</span>' ).'</p>'; return $comment_form_html_arr; }

// 移除评论人名字的链接 function disable_comment_author_links( $author_link ) { return strip_tags( $author_link ); }

3、保存function文件。
4、上传最新的function文件。