手里有一个放在国内服务器上的站点仍然使用的Twenty twelve 主题,该主题默认加载 Google fonts,但又不想安装插件。
将下面Disable Google Fonts插件里的一段代码放在子主题的function.php文件中,简单省事。
/**
* Dequeue Google Fonts based on URL.
* 根据 URL 删除参与排队 Google 字体样式表。
*/
function reno_dequeueu_fonts() {
global $wp_styles;
if ( ! ( $wp_styles instanceof WP_Styles ) ) {
return;
}
// 添加例外,其实这里国内的我们没有例外...
$allowed = apply_filters(
'reno_exceptions',
array( '' )
);
// 检查所有已注册的样式.
foreach ( $wp_styles->registered as $style ) {
$handle = $style->handle;
$src = $style->src;
// strpos — Find the position of the first occurrence of a substring in a string.
// 查找字符串首次出现的位置, 如果没有找到字符串则返回 FALSE.
$gfonts = strpos( $src, 'fonts.googleapis' );
if ( false !== $gfonts ) {
// array_flip - Exchanges all keys with their associated values in an array.
// 交换数组中的键和值,成功时返回交换后的数组,如果失败返回 null。
// aarray_key_exists — Checks if the given key or index exists in the array
// 检查数组里是否有指定的键名或索引, 成功时返回 true, 或者在失败时返回 false.
if ( ! array_key_exists( $handle, array_flip( $allowed ) ) ) {
// Remove a previously enqueued CSS stylesheet.
// 删除以前排队的 CSS 样式表。
wp_dequeue_style( $handle );
}
}
}
}
add_action( 'wp_enqueue_scripts', 'reno_dequeueu_fonts', 9999 );
add_action( 'wp_print_styles', 'reno_dequeueu_fonts', 9999 );
发表回复