2014-02-13 22 views
0

如果在某個類別中找到特定標籤,則會創建一個邊欄菜單。例如基於網址格式的菜單高亮

  • 蘋果
  • 橙子

單擊時,URL模式將是如下:

/類別/標籤=蘋果

的呈現菜單的代碼如下:

 <?php if ($term->slug == 'apples') {?> 
     <section class="item"> 
     <h4><a href="<?php $category_id = get_query_var('cat'); 
echo get_category_link($category_id);?>?tag=apples"> Apples</a> 
    </h4></section> 

     <?php } if ($term->slug == 'oranges') {?> 
     <section class="item"> 
     <h4><a href="<?php $category_id = get_query_var('cat'); 
echo get_category_link($category_id);?>?tag=oranges"> Oranges</a> 
    </h4></section> 
     <? } ?> 
     <?php } } ?> 

我很難用紅色背景突出顯示「蘋果」,因爲這是活動URL模式,橙色背景也是如此。

我已經嘗試過各種Jquery小提琴的例子,完美地演奏小提琴,但不是當我實施他們。大多數是靜態html頁面,這是更容易做到。

回答

0

這可能是你應該放在一個循環,但對你的​​節爲例:

<section class="item <?php echo ($term->slug === $_GET('tag')) ? 'active' : '';"> 
    <h4><a href="<?php $category_id = get_query_var('cat'); 
      echo get_category_link($category_id);?>?tag=apples"> Apples</a> 
    </h4></section> 

注意,我添加了一個active類的部分元素,這樣就可以風格(或它的孩子)不同。

0

爲什麼不驗證$ _GET變量,然後突出顯示活動URL?

if ($_GET['tag'] == 'apples') 
    echo ''; //Highlight : ON, with CSS 
else 
    echo ''; //Highlight : OFF 

同樣適用於「桔子」。

+0

謝謝,我設法得到了一些這方面的工作。我現在只需要添加一組單詞而不是「蘋果」,是否可以將它們全部列出。例如:=='蘋果','橙子'等。 – user2806378

+0

您可以嘗試使用php的in_array()函數,請參閱此處:http://ch2.php.net/manual/en/function.in-array。 PHP – tcj

0

既然你用jQuery標記它,你可以解決它在客戶端:

function getParameterByName(name) { 
    name = name.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]"); 
    var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"), 
     results = regex.exec(location.search); 
    return results == null ? "" : 
      decodeURIComponent(results[1].replace(/\+/g, " ")); 
} 

$(function(){ 

    var tag = getParameterByName('tag'); 

    if(tag){ 

     $('h4').filter(function(){ 
      return $(this).text().toLowerCase() === tag; 
     }).css({ color: 'red' }); 
    } 

}); 

Allthough我建議你直接解決它使用PHP的服務器上。只是一個選擇。