我正在尝试使用短代码加载自定义Google字体,我有一个[gfont gfont =""] Text [/ gfont],所以基本上这就是我正在做的...
function gfont_function($arr, $content = null ) {
extract(shortcode_atts(array(
'gfont' => ''
), $arr));
if(isset($arr['google_font'])) {
if($arr['google_font'] != "") {
$font_family = 'font-family:'.$arr['google_font'].', Helvetica, Verdana;';
$gfont = str_replace(' ', '+', $arr['google_font']);
wp_register_style('GoogleFonts', 'http://fonts.googleapis.com/css?family='.$gfont.'');
wp_enqueue_style('GoogleFonts');
}
}
$data = '<div style="'.$font_family.'">
'.$content.'
</div>';
return $data;
}
add_shortcode('gfont', 'gfont_function');
上面的代码只适用于我使用的1种特定字体,我的意思是短代码只能用于注册一次的样式..
现在我的问题是: 我要查看在输出之前页面上使用了这个短代码[gfont]的次数,所以我不想使用多重网址来获取Google字体,而是想制作一个所有使用过的Google字体的数组,并且只使用1个网址,像这样的东西:
wp_register_style(&#39; GoogleFonts&#39;,&#39; http://fonts.googleapis.com/css?family=&#39; .ARRAY_OF_GOOGLE_FONTS。&#39;&#39;); //格式正确
..所以基本上我将保留一个全局变量(最有可能),它将添加页面上使用的所有Google字体,然后制作一个简单的格式化URL以将所有这些加在一起。请指教。
感谢
答案 0 :(得分:0)
您定义的短代码很奇怪...但是,如果您必须这样做,您可以将这些队列包裹在wp_style_is()
中:
// If the font hasn't already been enqueued, enqueue it
if ( ! wp_style_is( 'GoogleFonts', 'enqueued' ) ) {
wp_register_style('GoogleFonts', 'http://fonts.googleapis.com/css?family='.$gfont.'');
wp_enqueue_style('GoogleFonts');
}