Twenty twelve 主题免插件一段代码禁用Google Fonts

手里有一个放在国内服务器上的站点仍然使用的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 );

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.