WordPress 的一些主题及后台由于使用了 Google 字体,使得 WordPress 加载非常慢,从网上找到两种禁用谷歌字体的代码,但现在都不起作用;估计是因为新版 Wordpress 使用了古登堡编辑器的原因,加载 google fonts 的方式有了改变。而网上的大多可以搜到的文章都比较早了;
通过参考 Wordpress 的 Disable Remove Google Fonts 插件(该插件只是禁用了前台的谷歌字体加载),改进后同时支持后台禁用谷歌字体,实测有效。
将下面的代码编辑到当前主题的 functions.php 文件
/*
* 通过Link标签的src地址判断后反注册禁用谷歌字体加载.
*/
if (!function_exists('disable_google_fonts')) {
function drgf_dequeueu_fonts()
{
global $wp_styles;
if (!($wp_styles instanceof WP_Styles)) {
return;
}
$allowed = apply_filters('drgf_exceptions', ['olympus-google-fonts']);
foreach ($wp_styles->registered as $style) {
$handle = $style->handle;
$src = $style->src;
$exist = strpos($src, 'fonts.googleapis');
if (false !== $exist) {
if (!array_key_exists($handle, array_flip($allowed))) {
wp_dequeue_style($handle);
wp_deregister_style($handle);
wp_register_style($handle, '');
}
}
}
}
add_action('wp_enqueue_scripts', 'drgf_dequeueu_fonts', 999);
add_action('admin_enqueue_scripts', 'drgf_dequeueu_fonts', 999);
add_action('login_enqueue_scripts', 'drgf_dequeueu_fonts', 999);
/*
* 禁用 Elementor 插件加载的谷歌字体.
*/
add_filter('elementor/frontend/print_google_fonts', '__return_false');
}
将以上代码中的 "fonts.googleapis" 改成其他样式脚本的地址特征也可以起到同样的去除效果;
注意:以下是已经失效的两种禁用谷歌字体的代码
无效代码一
if (!function_exists('remove_wp_open_sans')) {
function remove_wp_open_sans() {
wp_deregister_style( 'open-sans' );
wp_register_style( 'open-sans', false );
wp_enqueue_style('open-sans','');
}
//add_action('wp_enqueue_scripts', 'remove_wp_open_sans');
add_action('admin_enqueue_scripts', 'remove_wp_open_sans');
}
无效代码二
function disable_google_fonts($translations, $text, $context, $domain ) {
$google_fonts_contexts = array(
'Open Sans font: on or off',
'Lato font: on or off',
'Source Sans Pro font: on or off',
'Bitter font: on or off'
);
if($text == 'on' && in_array($context, $google_fonts_contexts))
{
$translations = 'off';
}
return $translations;
}
add_filter('gettext_with_context', 'disable_google_fonts', 888, 4);