这可能是一个非常简单的问题,如果是的话我很抱歉。但是我一直在寻找并且看不到解决方案。
我使用wordpress作为CMS,并根据变量将Google字体排入队列
if (!function_exists('opd_load_google_style')) {
/* Add Google Fonts */
global $opd_albaband;
$google_font = $opd_albaband['typography_h1']['font-family'];
function opd_load_google_style() {
if (!is_admin()) {
wp_register_style('googleFont','http://fonts.googleapis.com/css?family='.$google_font.' 400,700');
wp_enqueue_style('ggl', get_stylesheet_uri(), array('googleFont') );
}
}
add_action('wp_enqueue_scripts', 'opd_load_google_style');
}
然而,这会产生未定义的变量$google_font
。我可以使用$google_font
显示echo $google_font
,但这不适用于wp_register_style
...
我错过了什么吗?对不起它的简单。
答案 0 :(得分:0)
由于opd_load_google_style
功能无法访问$google_font
,您只需稍微改变一下即可。
if (!function_exists('opd_load_google_style')) {
function opd_load_google_style() {
/* Add Google Fonts */
global $opd_albaband;
$google_font = $opd_albaband['typography_h1']['font-family'];
if (!is_admin()) {
wp_register_style('googleFont','http://fonts.googleapis.com/css?family='.$google_font.' 400,700');
wp_enqueue_style('ggl', get_stylesheet_uri(), array('googleFont') );
}
}
}
答案 1 :(得分:0)
您的$google_font
变量超出了范围,因此您无法在opd_load_google_style
函数中使用它。相反,您的代码应该如下所示
if (!function_exists('opd_load_google_style')) {
function opd_load_google_style() {
/* Add Google Fonts */
global $opd_albaband;
$google_font = $opd_albaband['typography_h1']['font-family'];
if (!is_admin()) {
wp_register_style('googleFont','http://fonts.googleapis.com/css?family='.$google_font.' 400,700');
wp_enqueue_style('ggl', get_stylesheet_uri(), array('googleFont') );
}
}
add_action('wp_enqueue_scripts', 'opd_load_google_style');
}
或者您可以通过
将$google_font
变量传递给您的函数
function opd_load_google_style($google_font) {
//Inside your function you now have access to $google_font
}