Suporte » Temas » CSS current-page não funciona em um menu

  • Resolvido Pedro Dias

    (@pedrodias-1)


    Pessoal, boa noite!

    Estou com um problema que já me tirou do sério: criei um css “bunitu” para estilizar um menu, mas acontece que uma página não fica com o efeito “highlight” (current-page) e todas as demais ficam! Já verifiquei pelo Firebug e esta página não está “pegando” a classe necessária, mas as demais sim. Help-me please!!!

    Vejam: http://www.mundodoprazer.com.br/avanti

    PS 1: podem acessar pois o conteúdo do site não é pornográfico.
    PS 2: Para montar o menu utilizei a função register_nav_menu…

    Obrigado!

Visualizando 8 respostas - 1 até 8 (de um total de 8)
  • Criador do tópico Pedro Dias

    (@pedrodias-1)

    Pessoal,

    OBS: é o MENU INFERIOR a opção BLOG não fica com o estado CURRENT – mas a opção BLOG do MENU SUPERIOR fica!

    Obrigado!

    Myst1010

    (@myst1010)

    Vc tem alguma função manipulando os menus personalizados?

    Tentei reproduzir o erro aqui, mas não consegui.

    Como está o código de criação dos menus?

    Criador do tópico Pedro Dias

    (@pedrodias-1)

    Este é todo o código no arquivo Functions.php

    <?php
    	if(function_exists('register_nav_menu')){
    		register_nav_menu('menu','menu');
    	}
    
    	// Add support for Featured Images
    	if (function_exists('add_theme_support')) {
    			add_theme_support('post-thumbnails');
    			add_image_size('index-categories', 80, 80, true);
    			add_image_size('page-single', 80, 80, true);
    	}
    
    	function InsertFeaturedImage($content) {
    
    	global $post;
    
    	$original_content = $content;
    
    			if ( current_theme_supports( 'post-thumbnails' ) ) {
    
    					if ((is_page()) || (is_single())) {
    							$content = the_post_thumbnail('page-single');
    							$content .= $original_content;
    							} else {
    							$content = the_post_thumbnail('index-categories');
    							$content .= $original_content;
    					}
    
    			}
    			return $content;
    	}
    
    	add_filter( 'the_content', 'InsertFeaturedImage' );
    
    ?>

    E chamo o menu no HEADER e no FOOTER dessa maneira:

    <ul>
       <li><?php wp_nav_menu('menu'); ?></li>
    </ul>

    Clique na opção BLOG no menu SUPERIOR (HEADER) e veja que o menu INFERIOR (footer) não fica com o BLOG no estado CURRENT. Só esta opção (BLOG no menu INFERIOR) está assim; os outros funcionam perfeitamente e em ambos os menus (superior e inferior).

    Obrigado, pessoal.

    Criador do tópico Pedro Dias

    (@pedrodias-1)

    Pessoal,

    Descobri o que vem causando este “bug” mas continuo sem solução. A página BLOG é um template (template name: blog), e utilizo a linha abaixo para criar uma página de blog com paginação:

    <?php $paged = (get_query_var('paged')) ? get_query_var('paged') : 1; query_posts("cat=-1,-4,-5,-6,-9&paged=$paged"); ?>

    A linha cima é que está causando este bug sinistro no css do menu inferior.

    Alguém pode ajudar a resolver isso? Preciso criar paginação para listar os posts do blog…

    Obrigado!

    Myst1010

    (@myst1010)

    Não sabia que o loop poderia influenciar nisso, mas se for mesmo tente isso no final do loop

    wp_reset_query();

    Criador do tópico Pedro Dias

    (@pedrodias-1)

    Myst1010
    Muito obrigado, era isso mesmo!

    Cara, também nunca pensei que não fechar uma query poderia influenciar.

    Abraços!

    Myst1010

    (@myst1010)

    Bom saber disso, nem desconfiava que funcionava assim.
    Eu que agradeço pelo conhecimento, vivendo e aprendendo.

    gente, estou com o mesmo problema, mas é mais grave:

    query_posts(array('post_type' => 'post')); // por exemplo
    get_template_part( 'loop', 'index' );

    O item no menu dessa página fica apagado, e já sei porque: porque para adicionar a classe CSS de página atual, uma função verifica uma variavel que tem o id da página com uma outra variável.

    A primeira já identifiquei que é $wp_query->queried_object_id
    pois por exemplo, se estou na página com querystring page_id=10, e coloco o $wp_query->queried_object_id = ‘8’ (antes do código do nav-menu, e SEM o query_posts), o item no menu que acende é o da página 8, mesmo eu estando vendo a 10.

    $wp_query->queried_object_id = '8';
    get_template_part( 'loop', 'index' );

    Achei qque seria simple resolver colocando o $wp_query->queried_object_id com o id real da página assim:

    query_posts(array('post_type' => 'post'));
    $wp_query->queried_object_id = '10'; //page_id real
    get_template_part( 'loop', 'index' );

    Mas não resolveu! =(

    Alguém consegue desvendar esse mistéeeeerio??

Visualizando 8 respostas - 1 até 8 (de um total de 8)
  • O tópico ‘CSS current-page não funciona em um menu’ está fechado para novas respostas.