我的代码只执行if语句,但不会继续执行else部分。我已经单独尝试了每个声明,它们工作正常。但是,当我把它们放在一起时,只执行第一个语句。我做错了什么?
我试过这个:
function body_google_webfonts() {
if( $settings['font_type_body'] = "Handlee") :
wp_register_style('body-google-webfonts', 'http://fonts.googleapis.com/css?family=Handlee');
wp_enqueue_style( 'body-google-webfonts');
elseif ( $settings['font_type_body'] = "Kreon") :
wp_register_style('body-google-webfonts', 'http://fonts.googleapis.com/css?family=Kreon');
wp_enqueue_style( 'body-google-webfonts');
endif;
}
和此:
function body_google_webfonts() {
if( $settings['font_type_body'] = "Handlee") :
wp_register_style('body-google-webfonts', 'http://fonts.googleapis.com/css?family=Handlee');
wp_enqueue_style( 'body-google-webfonts');
endif;
if ( $settings['font_type_body'] = "Kreon") :
wp_register_style('body-google-webfonts', 'http://fonts.googleapis.com/css?family=Kreon');
wp_enqueue_style( 'body-google-webfonts');
endif;
}
和此:
function body_google_webfonts() {
if( $settings['font_type_body'] = "Handlee") {
wp_register_style('body-google-webfonts', 'http://fonts.googleapis.com/css?family=Handlee');
wp_enqueue_style( 'body-google-webfonts');
}
if ( $settings['font_type_body'] = "Kreon") {
wp_register_style('body-google-webfonts', 'http://fonts.googleapis.com/css?family=Kreon');
wp_enqueue_style( 'body-google-webfonts');
}
}
我试过这个:
function body_google_webfonts() {
if( $settings['font_type_body'] = "Handlee") {
wp_register_style('body-google-webfonts', 'http://fonts.googleapis.com/css?family=Handlee');
wp_enqueue_style( 'body-google-webfonts');
} else if ( $settings['font_type_body'] = "Kreon") {
wp_register_style('body-google-webfonts', 'http://fonts.googleapis.com/css?family=Kreon');
wp_enqueue_style( 'body-google-webfonts');
}
}
答案 0 :(得分:4)
您为变量赋值而不是比较它。这将始终导致陈述成立。
if( $settings['font_type_body'] = "Handlee") :
应该是
if( $settings['font_type_body'] == "Handlee") :
或
if( $settings['font_type_body'] === "Handlee") :
答案 1 :(得分:0)
我认为你的问题是:你没有比较两件事,你正在使变量设置等于“Handlee”。 此操作将始终返回true,因此只会执行第一个if。
要解决此问题,请使用正确的句子:
$settings['font_type_body'] == "Handlee"
加倍“=”。
@Jessica,一个非常好的编程实践,为了避免这个简单的错误,总是把你的变量放在比较的右边。像这样:int a = 0;
if 0 == a
您可以将它用于其他语言。如果您尝试
,这是很好的理由If 0 = a
在调试模式下很容易找到问题。