我正在使用WordPress小部件,出於某種原因,我無法獲得if語句。我正在試圖檢查一個變量是否爲空,如果該變量不是空的,而不是我想要顯示的圖像。如果變量爲空,我不想顯示圖像。以下是該語句:(初學者)如何讓條件語句在WordPress小部件中工作?
if (empty($facebook)) {
echo '';
} else {
echo '<a href="'.$facebook.'"><img src="'.get_option('siteurl').'/wp-content/themes/SimplePhoto/widgets/facebook.png" /></a>';
}
現在,當我運行該插件,Facebook的圖標顯示了不管是什麼。
編輯:這是建立小部件的形式,並將其顯示在前端代碼:
function form($instance) {
$defaults = array('title' => 'My Info', 'Facebook' => '', 'Twitter' => '');
$instance = wp_parse_args((array) $instance, $defaults);
$title = $instance['title'];
$facebook = $instance['facebook'];
$twitter = $instance['twitter'];
?>
<p>Title: <input class="widefat" name="<?php echo $this->get_field_name('title'); ?>" type="text" value="<?php echo esc_attr($title); ?>" /></p>
<p>Facebook: <input class="widefat" name="<?php echo $this->get_field_name('facebook'); ?>" type="text" value="<?php echo esc_attr($facebook); ?>" /></p>
<p>Twitter: <textarea class="widefat" name="<?php echo $this->get_field_name('twitter'); ?>"/><?php echo esc_attr($twitter); ?></textarea></p>
<?php
}
//save the widget settings
function update($new_instance, $old_instance) {
$instance = $old_instance;
$instance['title'] = strip_tags($new_instance['title']);
$instance['facebook'] = strip_tags($new_instance['facebook']);
$instance['twitter'] = strip_tags($new_instance['twitter']);
return $instance;
}
//display the widget
function widget($args, $instance) {
extract($args);
echo $before_widget;
$title = apply_filters('widget_title', $instance['title']);
$facebook = empty($instance['facebook']) ? ' ' : $instance['facebook'];
$twitter = empty($instance['twitter']) ? ' ' : $instance['twitter'];
if (!empty($title)) { echo $before_title . $title . $after_title; };
if (empty($facebook)) {
echo '';
} else {
echo '<a href="'.$facebook.'"><img src="'.get_option('siteurl').'/wp-content/themes/SimplePhoto/widgets/facebook.png" /></a>';
}
echo $after_widget;
}
}
嘗試'回聲實$;'這一點,如果前,看看它得到。把代碼放在你初始化的位置$ facebook – Mike 2012-01-29 23:56:36
當我添加echo $ facebook時,它會顯示變量內容,因此它顯示了輸入到文本框中的內容。當清除文本框並保存小部件時,echo $ facebook不會顯示任何內容。我將繼續並添加構建窗體構件並顯示它的代碼。 – user715564 2012-01-30 00:00:46
actualyy它不工作,因爲在這裏'$ facebook = empty($ instance ['facebook'])? ' ':$ instance ['facebook'];'你可以將$ facebook的值或空格。這就是爲什麼回聲沒有向您顯示任何內容並繼續顯示圖標,因爲您在此變量中具有空格字符。 – Mike 2012-01-30 00:18:07