WordPress开发笔记

低配WordPress网站选择区块编辑器还是经典编辑器?重点优化!

如果你的WordPress网站服务器配置低,那么推荐使用经典编辑器,既能节省性能优化的麻烦又能提升后台操作速度!

没错!WordPress区块编辑器(古腾堡)通常比经典编辑器更占用资源,尤其是在处理复杂内容或特定配置时。

但这并非绝对,其性能表现高度依赖于使用场景和优化程度。

下面为你详细对比两者在内存和性能上的关键差异。

核心差异对比

资源占用与加载速度

区块编辑器:需要加载更多JavaScript和CSS文件来支持区块功能,可能导致后台编辑界面加载变慢,特别是在内容复杂或自定义字段多的页面。

经典编辑器:基于较简单的HTML编辑器,通常加载更快,资源消耗更低。

生成的代码与前端性能

区块编辑器:生成的HTML代码更冗长,包含大量默认的CSS类,可能增加页面体积。

经典编辑器:生成的HTML代码更精简、直接,有利于前端加载。

性能优化潜力

区块编辑器高度依赖优化。通过禁用未用区块、使用现代主题和缓存,性能可大幅提升,甚至超越旧架构。

经典编辑器:优化空间相对较小,但本身较为轻量。

典型适用场景

区块编辑器:适合追求现代设计、复杂布局和可视化编辑的网站,并愿意为优化投入。

经典编辑器:适合以纯文本内容为主、追求极致后台速度,或使用大量与区块编辑器不兼容的旧插件/主题的网站。

如何优化区块编辑器的性能

如果你选择使用区块编辑器,可以采取以下措施来提升速度、减少资源占用:

  1. 精简区块:在编辑器设置中使用“块管理器”,禁用所有不需要的区块。
  2. 优化自定义字段:如果网站有大量文章和自定义字段导致编辑页加载极慢,可以参考相关案例的解决方案,通过添加代码优化数据库查询。
  3. 保持更新:使用最新的WordPress版本、主题和插件,官方持续在进行性能改进。
  4. 使用现代主题:考虑使用为区块编辑器优化的轻量主题(区块主题),这有助于提升整体效率。
  5. 实施缓存:为网站前端配置缓存插件,这能有效改善用户访问时的加载速度。

优化自定义字段

要解决这个问题,需要从“诊断瓶颈”开始,然后实施“针对性优化”。

优化方案对比与选择

下表整理了几种核心优化方法,你可以根据网站的具体情况和自身技术能力来选择:

优化方向核心方法预期效果适用场景 / 技术门槛
禁用低效查询在文章列表查询中设置 no_found_rows=true 参数,禁用耗时的 SQL_CALC_FOUND_ROWS显著提升文章列表(如后台“所有文章”页)的加载速度。适用于文章数量巨大(数千篇以上)的网站,效果直接。需要添加代码。
实现查询缓存使用 wp_cache_set()wp_cache_get() 等函数缓存自定义查询结果。显著减少对相同数据的重复查询,降低数据库负载。适用于使用了大量复杂自定义字段查询的页面。需要一定的开发能力。
批量高效更新使用 WP-CLI 命令或直接运行 SQL 语句来批量更新自定义字段。高效完成大规模数据操作,避免在后台单条操作超时。适用于需要一次性更新成千上万篇文章的字段值。需要命令行或数据库操作知识。
常规数据库维护使用插件(如 WP-Optimize)清理修订版、自动草稿等冗余数据。释放数据库空间,一定程度提升整体性能。所有网站都应进行的常规维护,操作简单,但对此特定问题改善有限。

具体操作步骤

你可以遵循以下步骤来诊断和优化:

第一步:精确定位瓶颈

在优化之前,必须知道是什么拖慢了速度。强烈建议安装 Query Monitor 插件。启用后,它会在后台工具栏显示当前页面的所有数据库查询、执行时间、以及调用来源。打开加载缓慢的文章编辑页,重点查看耗时最长(通常超过0.05秒)的查询语句,特别是涉及 wp_postmeta(自定义字段存储表)的查询。

第二步:实施针对性优化

根据诊断结果,选择上表中的方法进行优化。这里提供两个最常见且有效的代码解决方案:

优化后台文章列表查询:如果“所有文章”页面慢,将以下代码添加到当前主题的 functions.php 文件中。这可以禁止WordPress计算文章总数,大幅提升列表查询速度。

add_action( 'pre_get_posts', function ( $query ) {
    // 仅在后端的主文章列表查询中生效
    if ( is_admin() && $query->is_main_query() && $query->get('post_type') == 'post' ) {
        $query->set( 'no_found_rows', true );
    }
});

缓存自定义字段查询:如果编辑页加载慢是因为某个自定义字段查询频繁且耗时,可以使用WordPress内置的对象缓存为其添加缓存。以下是一个示例代码框架:

// 使用缓存获取数据
$cached_data = wp_cache_get( 'my_unique_cache_key' );
if ( false === $cached_data ) {
    // 缓存中没有,则执行原始查询
    $cached_data = //... 你的自定义查询代码 ...
    // 将查询结果存入缓存,设置过期时间(如12小时)
    wp_cache_set( 'my_unique_cache_key', $cached_data, '', 43200 );
}
// 使用 $cached_data

第三步:进行批量处理与维护

批量更新:如果需要更新大量文章的自定义字段,绝对不要在后台手动操作。应按照的建议,使用WP-CLI命令(如 wp post meta update)或编写一个精准的SQL更新语句在phpMyAdmin中执行。操作前务必备份数据库

数据库清理:定期使用 WP-OptimizeAdvanced Database Cleaner 等插件,清理文章修订版、自动草稿、回收站项目等,保持数据库高效。

重要提醒

  • 备份先行:在进行任何代码修改或数据库直接操作前,请确保已完成完整的网站和数据库备份。
  • 缓存插件冲突:如果使用了像WPTurbo这样的全功能优化插件,注意其缓存功能可能与专门的缓存插件冲突,建议只保留一套缓存系统。
  • 效果评估:每次修改后,使用Query Monitor再次检查,确认耗时查询是否已消失或时间大幅缩短。

总而言之,解决编辑页加载慢的问题,关键在于先使用Query Monitor定位具体慢查询,然后针对性采取禁用低效计算、添加缓存或优化批量操作等措施。

如何选择编辑器?

  • 优先选择区块编辑器:如果你正在新建网站,或网站的设计灵活性和未来兼容性更重要,区块编辑器是更面向未来的选择。通过上述优化,可以获得很好的性能。
  • 考虑使用经典编辑器:如果你的网站以发布纯文本文章为主,后台有海量文章(如超过10万篇) 且编辑体验至关重要,或严重依赖未适配区块编辑器的旧插件/主题,那么经典编辑器插件可能是更稳妥的选择。