2016-02-23 6 views
0

Я пытаюсь просто добавить активный класс в div боковой панели, когда он находится на этой странице. Здесь вы можете увидеть пример: http://nsiprojects.voodoodev3.co.uk/?page_id=193, который буквально выделяет только первый div, а не активный div.Добавить .active класс в div

<div class="mezzanine-sub"> 
       <?php 
$childpages = query_posts('orderby=menu_order&order=asc&post_type=page&post_parent=35'); 
if($childpages) { /* display the children content */ 
foreach ($childpages as $post) : 
setup_postdata($post) ?> 
     <script type="text/javascript"> 
      $(function() { 
       var current = location.pathname; 
       $('.mezzanine-sub a').each(function() { 
        var $this = $(this); 
        // if the current path is like this link, make it active 
        if ($this.attr('href').indexOf(current) !== -1) { 
         $this.addClass('active'); 
        } 
       }) 
      }) 
</script> 

    <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>" class="mezzanine-sub-title"> 
     <span><?php the_title(); ?></span> 
    <a> 

    <!-- post thumbnail --> 
    <?php 
     global $post; ?> 
    <?php 
    $src = wp_get_attachment_image_src(get_post_thumbnail_id($post -> ID), array(5600, 1000), false, ''); 
    ?> 
    <div class="mezzanine-sub-image" style="background: url(<?php echo $src[0]; ?>);border:<?php the_field('border'); ?>;"></div> 
    <!-- /post thumbnail --> 

    <!-- post title --> 
       <?php 
       endforeach; 
       } ?> 
       </div> 
+0

Что произойдет, если вы сравните HREF с именем пути напрямую? '($ This.attr ('HREF') == тока)' – jmargolisvt

+0

Существует ошибка на странице '$ this.attr (.. .) не определено. Это останавливает дальнейшее выполнение вашего кода. – A1rPun

+0

Хм ... Я предлагаю вам выпустить скрипку с помощью только сгенерированной разметки и js. Php не имеет отношения к этой проблеме. – jmargolisvt

ответ

1

Не нужно использовать какой-либо код jQuery/JavaScript. Вы можете применить активный класс, сравнив page_id, который существует как строка запроса.

<div class="mezzanine-sub"> 
    <?php 
    $childpages = query_posts('orderby=menu_order&order=asc&post_type=page&post_parent=35'); 
    if ($childpages) 
    { 
     // Display the children content 
     foreach ($childpages as $post) 
     { 
      setup_postdata($post) 
      ?> 
      <a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>" class="mezzanine-sub-title <?php echo!empty($_GET['page_id']) && $_GET['page_id'] == $post->ID ? "active" : NULL ?>"> 
       <span><?php the_title(); ?></span> 
       <a> 
        <?php 
        global $post; 
        $src = wp_get_attachment_image_src(get_post_thumbnail_id($post->ID), array(5600, 1000), false, ''); 
        ?> 
        <div class="mezzanine-sub-image" style="background: url(<?php echo $src[0]; ?>);border:<?php the_field('border'); ?>;"> 
        </div> 
       </a> 
      </a> 
      <?php 
     } 
    } 
    ?> 
</div> 
+0

Что. Звезда. ! – user3181828

Смежные вопросы