2012-01-29 41 views
0

我正在使用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']) ? '&nbsp;' : $instance['facebook']; 
    $twitter = empty($instance['twitter']) ? '&nbsp;' : $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; 
} 

}

+0

嘗試'回聲實$;'這一點,如果前,看看它得到。把代碼放在你初始化的位置$ facebook – Mike 2012-01-29 23:56:36

+0

當我添加echo $ facebook時,它會顯示變量內容,因此它顯示了輸入到文本框中的內容。當清除文本框並保存小部件時,echo $ facebook不會顯示任何內容。我將繼續並添加構建窗體構件並顯示它的代碼。 – user715564 2012-01-30 00:00:46

+1

actualyy它不工作,因爲在這裏'$ facebook = empty($ instance ['facebook'])? ' ':$ instance ['facebook'];'你可以將$ facebook的值或空格。這就是爲什麼回聲沒有向您顯示任何內容並繼續顯示圖標,因爲您在此變量中具有空格字符。 – Mike 2012-01-30 00:18:07

回答

1

做這個

$facebook = empty($instance['facebook']) ? '' : $instance['facebook']; 
+0

嘿,解決了這個問題!謝謝您的幫助。 – user715564 2012-01-30 00:28:44

0

你確定你的變量實際上是空的?嘗試用你知道的東西替換爲真(假)來檢查你的語法