2011-08-08 67 views
0

我已被滿足一個PHP腳本,根據某些條件列表元素內輸出一個鏈接元件,所述代碼如下:href但沒有網址後?

global $wpdb; 

    function currentURL() { 

     $pageURL = 'http'; 
     if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";} 
     $pageURL .= "://"; 
     if ($_SERVER["SERVER_PORT"] != "80") { 
      $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"]; 
     } else { 
      $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"]; 
     } 
     return $pageURL;} 

    $getUrl = $wpdb->get_results("SELECT option_name,option_value FROM wp_options WHERE option_name = 'siteurl' "); 

    $url = $geturl->option_value; 

    $getData = $wpdb->get_results("SELECT post_title,guid FROM wp_posts WHERE post_type = 'page' "); 

    echo "<ul id=\"mainNavInnerContainer\">"; 

    if(currentURL() == $url){ 
    echo "<li><a href=\"" . $url . "\" id=\"current\">home</a></li>";} 

    else{ echo "<li><a href=\"" . $url . "\">home</a></li>"; } 

時遇到的問題是,當我觀看在元件在我的瀏覽器的源代碼視圖我得到如下:

<a href>Home</a> 

我,爲什麼這是真的很困惑,並希望其他人會有什麼想法,爲什麼。

編輯 我能夠使用foreach循環將值放入我的$ url變量,但這是一個好的做法嗎?因爲我知道$ getUrl中的查詢將始終返回一行,但這種方法仍然很容易出錯。下面是修改後的$ url變量代碼:

 foreach($getUrl as $urlResult){ 
     $url = $urlResult->option_value;} 
+1

var_dump($ url);什麼說? – Subdigger

回答

0
  1. 添加到代碼頂部error_reporting(E_ALL);
  2. 附加檢查:

    $getUrl = $wpdb->get_results("SELECT option_name,option_value FROM wp_options WHERE option_name = 'siteurl' ");  
        $url = $geturl->option_value; 
    var_dump($url);
+0

那麼你肯定幫我縮小了一個愚蠢的bug,我沒有在我的$ getUrl變量中使用大寫U,但$ url的var_dump()仍然返回NULL,我也做了一個$ getUrl的var_dump,它返回一行所以我相信這部分工作。 –

+1

返回1行用什麼?用'$ row ['option_value']'或'$ rows = array($ row ['option_value'])'?那麼你可能需要這樣做:$ url = $ geturl [0] - > option_value;'? – Subdigger

+0

太棒了!我用來查詢wordpress表的wpdb對象以數組的形式返回結果,這很有道理,謝謝! –

0

當您查看網頁的源代碼,一些瀏覽器(我相信Firefox是一個)會告訴你他們渲染的源代碼,而不是你發送的源代碼。如果該屬性沒有指定值,則瀏覽器可以選擇像這樣顯示它,並且該屬性存在但沒有值。

+0

那麼你的說法是我的腳本沒有設置一個值? –

+0

我認爲這可能不是;我對軟件不夠熟悉。我只想指出不要相信瀏覽器顯示的源代碼。 –