禁用WordPress5.9版本更新以及移除向前台添加的内联样式和Svg图像等多余代码

2022-02-1510:07:53禁用WordPress5.9版本更新以及移除向前台添加的内联样式和Svg图像等多余代码已关闭评论

WordPress 在 2022 年 1 月 25 日发布了 5.9 版本,取名为:Josephin,在此版本中发布了一个新的默认主题:2022, WordPress 历史上的第一个默认块主题。这不仅仅是一个新的默认主题,同时也是使用 WordPress 主题的全新方式。WordPress 对于前端的处理是越来越多,但对于后端 PHP 来说,支持的更少了,原以为会支持 PHP8.1 版本,但是体验后发现还是不太兼容 PHP 8.1。

禁用WordPress5.9版本更新以及移除向前台添加的内联样式和Svg图像等多余代码

最近的版本发布主要围绕着新版编辑器古腾堡 (Gutenberg) 古德堡编辑器,进行可视化、模块化。而我还是继续使用原始的编辑器,暂时用不到区块编辑器,为什么呢?因为我用 Markdown 写内容,并且自己写了插件进行解析操作,WordPress 目前只是相当于提供了功能、插件、主题的一些功能。

禁用版本更新

这些更新对我来说没有任何意义,所以我放弃了更新 WordPress 内核。

在主题的 functions.php 中添加:

// 禁用核心更新
add_filter('pre_site_transient_update_core', '__return_null');
remove_action('admin_init', '_maybe_update_core');

就可以移除更新检测和后台中 WordPress 5.9现已可用!请立即更新。的提示

移除向前台页面添加的内联样式 Css 和 Svg 图像等多余代码

如果你升级了 WordPress 5.9 ,你就会发现:

从 WordPress 5.9 开始,WordPress 会向前端页面的头部插入了 global-styles 内联样式,并向底部插入了很多的 svg 图像(主要是 duotone block,查看页面源代搜索 duotone 就能看到了)。

对于国内主题而言,主题本身有自己的特定 CSS 样式,根本用不到 WordPress 这个新加的样式和图像,让页面平白多出了许多冗余代码...

那么如何移除掉这些东西呢?

移除头部里的 Global-Styles 内联样式

在主题的 functions.php 中添加:

/**
 * WordPress 5.9 移除头部里的 global-styles 内联 css 样式
 * https://www.ilxtx.com/disable-gutenberg-style-and-duotone-svg-images.html
 */
function remove_global_styles(){
    wp_dequeue_style( 'global-styles' );
}
add_action( 'wp_enqueue_scripts', 'remove_global_styles' );

移除底部里的 Duotone Svg 图像

在首个版本中通过 WordPress 源代码来看,并没有预留直接禁止 duotone svg 图像的钩子方法,使用 remove_filter( 'render_block', 'wp_render_duotone_support', 10); 的方法,并不能移除。

而需要使用在 WordPress 5.9 中添加的 theme.json 这个配置文件才可以。

在所使用的主题的根目录中新建一个 theme.json 文件,写入以下代码:

{
    "version": 1,
    "settings": {
        "color": {
            "duotone": null
                }
        }
}

一键移除上面的内联样式和 SVG 图像(推荐)

在主题的 functions.php 中添加:

/**
 * 移除 WordPress 5.9 向前台页面添加的内联样式 css 和 svg 图像等多余代码
 * https://www.ilxtx.com/disable-gutenberg-style-and-duotone-svg-images.html
 */
function remove_global_styles(){
    remove_action('wp_enqueue_scripts', 'wp_enqueue_global_styles');
    remove_action('wp_footer', 'wp_enqueue_global_styles', 1);
}
add_action('after_setup_theme', 'remove_global_styles', 10, 0);

移除所有区块样式

在主题的 functions.php 中添加:

function remove_wp_block_library_css(){
    wp_dequeue_style( 'wp-block-library' );
    wp_dequeue_style( 'wp-block-library-theme' );
    wp_dequeue_style( 'wc-block-style' ); // 移除WOO插件区块样式
    wp_dequeue_style( 'global-styles' ); // 移除 THEME.JSON
}
add_action( 'wp_enqueue_scripts', 'remove_wp_block_library_css', 100 );
一次性删除wordpress所有文章的方法教程 建站心得

一次性删除wordpress所有文章的方法教程

今天发生了悲催的事,本来在做一款新主题发布了一些测试数据但是发下文章和主题不太符合,都发错了,我又不想重新删了文章重新配置,怎么办呢?只能删除这个站里所有文章。 如何删除 wordpress 所有文章...
WordPress如何通过自定义字段实现文章重新排序 建站心得

WordPress如何通过自定义字段实现文章重新排序

您想更改网站博客页面上 WordPress 文章的顺序吗?那么您就在正确的地方学习此功能并更改文章的顺序。因此,在本文中,我将向您展示如何通过自定义字段更改文章的顺序。 WordPress 中文章的默...
Wordpress如何设置UET追踪代码 建站心得

Wordpress如何设置UET追踪代码

UET追踪代码,是独立站追踪用户使用习惯等监测必要的代码,可以用来分析用户倾向。Wordpress下如何设置点击事件的追踪代码呢? 一.设置UET全局代码。全局UET代码,是对整个网站用户行为进行追踪...
wordpress主题添加全站热评文章和分类热评文章? 建站心得

wordpress主题添加全站热评文章和分类热评文章?

所谓wordpress热评文章,就是文章列表按评论的多少来排列。跟前面介绿过的wordpress随机文章一样,wordpress热评文章也分类全站热评文章和分类热文章。wordpress主题热评文章,...