2011-08-08 68 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

我认为这可能不是;我对软件不够熟悉。我只想指出不要相信浏览器显示的源代码。 –