Поддержка Проблемы и решения Не выделяется активный элемент

  • Всем привет!
    Подскажите, пожалуйста, почему не выделяется активный элемент, а только при навидение (hover) работает? В CSS прописан и hover и activ…

    function my_filter() {
    global $categories;
    
    ?>
    <?php
      $categories =  get_categories('pad_counts=1&hide_empty=0&orderby=ID&include=67,72,38,8,64');     
     ?>
    
    <!-- Виджет начинается здесь -->
    
    <div id="gallery_filter"> 
    
    	    <a href="https://www.intaste.lv/ru/places-in-riga/"<?php if(!$catSlug) { ?> class="active"<?php } ?>><?php esc_html_e("[:ru]Все [:LV]", THEME_NAME);?></a>
    		<?php foreach ($categories as $category) { ?>
    			<?php if(isset($category->term_id)) { ?>
    				<a href="<?php echo esc_url(get_term_link((int)$category->term_id,DF_POST_GALLERY.'-cat'));?>" <?php if($catSlug==$category->slug) { ?> class="active"<?php } ?>><?php echo  esc_html__($category->name);?></a>
    			<?php } ?>
    		<?php } ?>
    	</div>
    
    <?php
    }   

    Что ему не понятно? Вроде добавил класс в тег — не хочет меня понимать…

Просмотр 6 ответов — с 1 по 6 (всего 6)
  • пальцем ткните, для какого элемента вы прописываете active, каким образом и на какой странице. я при открытии вашего сайта вижу gallery_filter только в меню и active там прописан только для ссылки «Все».

    На странице только «Все» выделен в класс active. Но в этой строчке ведь прописано, чтобы та ссылка на которой сейчас находится пользователь была активна, разве не так?
    <a href="<?php echo esc_url(get_term_link((int)$category->term_id,DF_POST_GALLERY.'-cat'));?>" <?php if($catSlug==$category->slug) { ?> class="active"<?php } ?>><?php echo esc_html__($category->name);?></a>

    
    <?php if($catSlug==$category->slug) { ?>
    

    пальцем ткните, где у вас определяется $catSlug?

    В самой функции задал условие.

    function my_filter() {
    global $categories;
    
        $catSlug = $wp_query->queried_object->slug;
    	if(!$catSlug) {
    		$my_query = new WP_Query(
    			array(
    				'post_type' => DF_POST_GALLERY, 
    				'posts_per_page' => $posts_per_page, 
    				'paged'=>$paged
    			)
    		);  
    	} else {
    		$my_query = new WP_Query(
    			array(
    				'post_type' => DF_POST_GALLERY, 
    				'posts_per_page' => $posts_per_page, 
    				'paged'=>$paged,
    				'tax_query' => array(
    					array(
    						'taxonomy' => DF_POST_GALLERY.'-cat',
    						'field' => 'slug',
    						'terms' => $catSlug
    					)
    				)
    			)
    		); 
    
    	}
    
    ?>
    <?php
      $categories =  get_categories('pad_counts=1&hide_empty=0&orderby=ID&include=67,72,38,8,64');     
     ?>
    
    <!-- Виджет начинается здесь -->
    
    <div id="gallery_filter"> 
    
    	    <b><a href="https://www.intaste.lv/ru/places-in-riga/"<?php if(!$catSlug) { ?> class="active"<?php } ?>><?php esc_html_e("[:ru]Все [:LV]", THEME_NAME);?></a></b>
    		<?php foreach ($categories as $category) { ?>
    			<?php if(isset($category->term_id)) { ?>
    				<a href="<?php echo esc_url(get_term_link((int)$category->term_id,DF_POST_GALLERY.'-cat'));?>" <?php if($catSlug==$category->slug) { ?> class="active"<?php } ?>><?php echo  esc_html__($category->name);?></a>
    			<?php } ?>
    		<?php } ?>
    	</div>
    
    <?php
    }   
    

    проверили бы вы через var_dump, что там у вас в $catSlug находится.
    или определяйте $catSlug так:

    
    if ( is_single() ) {
        $cats =  get_the_category();
        $cat = $cats[0];
    } else {
        $cat = get_category( get_query_var( 'cat' ) );
    }
    $catSlug = $cat->slug;
    

    Спасибо! Так намного проще и более читаем код стал. 🙂

Просмотр 6 ответов — с 1 по 6 (всего 6)
  • Тема «Не выделяется активный элемент» закрыта для новых ответов.