Php 基于url模式的菜单高亮显示

Php 基于url模式的菜单高亮显示,php,jquery,Php,Jquery,我有一个侧边栏菜单,如果在一个类别中找到一个特定的标签,它就会被创建。比如说 苹果 橘子 单击时,URL模式如下所示: <?php if ( $term->slug == 'apples' ) {?> <section class="item"> <h4><a href="<?php $category_id = get_query_var('cat'); echo get_category_l

我有一个侧边栏菜单,如果在一个类别中找到一个特定的标签,它就会被创建。比如说

苹果 橘子 单击时,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 } } ?>
/类别/?标签=苹果

呈现菜单的代码如下所示:

       <?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模式时,我很难突出显示红色背景的苹果,橙色背景的橙子也是如此


我已经尝试过各种jqueryfiddle示例,它们在fiddle上运行得非常好,但在实现它们时却没有。大多数用于静态html页面,这样做更容易。

这可能是您应该放在循环中的内容,但Apple部分的示例如下:


请注意,我已向section元素添加了一个活动类,以便您可以对该类或其子类进行不同的样式设置。

为什么不验证$\u GET变量,然后突出显示活动URL

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

橙子也是如此。

因为您用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' });
    }

});

尽管我建议您使用PHP直接在服务器上解决它。只是另一种选择。

谢谢,我设法用它做了一些工作。我现在只需要添加一个单词数组,而不仅仅是“苹果”,这样就可以列出所有单词了。例如:=='apples'、'oranges'等。您可以尝试使用php的in_数组函数,请参见此处: