Wordpress-在最终输出快捷码之前创建Google字体数组

Wordpress-在最终输出快捷码之前创建Google字体数组,wordpress,Wordpress,我正在尝试加载带有快捷码的自定义谷歌字体,我有一个[gfont gfont=”“]文本[gfont],所以基本上我就是这么做的 function gfont_function($arr, $content = null ) { extract(shortcode_atts(array( 'gfont' => '' ), $arr)); if(isset($arr['google_font'])) { if($arr['google_

我正在尝试加载带有快捷码的自定义谷歌字体,我有一个[gfont gfont=”“]文本[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');
函数gfont\u函数($arr,$content=null){
提取(短码)附件(数组)(
“gfont”=>“
)美元),;
如果(isset($arr['google_font'])){
如果($arr['google\u font']!=“”){
$font_family='font family:'。$arr['google_font'.],赫尔维蒂卡,威尔达纳;
$gfont=str_replace(“”,“+”,$arr['google_font']);
wp_register_样式('GoogleFonts','http://fonts.googleapis.com/css?family=“.$gfont”。”);
wp_enqueue_风格(“谷歌字体”);
}
}
$data=
“.$content。”
';
返回$data;
}
添加_短码('gfont','gfont_函数');
上面的代码只适用于我使用的1种特定字体,我的意思是短代码只在注册样式一次时有效

现在我的问题是: 在输出之前,我要检查这个短代码[gfont]在页面上被使用了多少次,因此,我不想使用多个url来获取Google字体,我想创建一个所有使用过的Google字体的数组,只使用一个url,类似这样:

wp_register_样式('GoogleFonts','.ARRAY_OF_GOOGLE_FONTS')//格式正确

。。所以基本上我会保留一个全局变量(最有可能),它会添加页面上使用的所有谷歌字体,然后创建一个简单的格式化url来加载所有字体。请告知


谢谢

您定义的快捷码很奇怪……但是,如果您必须这样做,您可以将队列包装为:

谢谢它用$arr表示“gfont”,基本上是“google\u字体”,这是更大的短代码的一部分,所以我只是保留了部分,忘记了将gfont改为“google\u字体”。。但问题是,如果我使用这个短代码4次,它只会注册一次_样式,而不是我在页面不同位置使用的4种不同字体。如何在输出前访问快捷码,以便修改和生成所有字体的数组,然后注册\u样式。。。
// 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');
}