Suporte » Outros assuntos » Texto do menu fica aparecendo na página de busca

  • Resolvido Julinho

    (@razione)


    Olá!

    Eu criei uma estrutura de menu, com sub-menus.

    O Problema:

    Quando eu faço uma busca no site, os títulos destes menus estão aparecendo na página de resultados. E isso faz a pessoa clicar, achando que é uma página.

    Você consegue me ajudar a resolver este problema?

Visualizando 14 respostas - 1 até 14 (de um total de 14)
  • Moderador Felipe Elia

    (@felipeelia)

    Oi @razione,

    Você usou só o esquema de menus nativos do WordPress ou usou alguma coisa diferente? Os links são para páginas/posts ou links personalizados?

    Criador do tópico Julinho

    (@razione)

    Olá, @felipeelia,

    Obrigado pelo seu retorno.

    Eu usei o esquema de montar os menus, nativo do WordpPress.

    Os links que aparecem na página de busca, são os links persnalizados, os outros, que são páginas, não aparecem.

    Vale dizer que o link que é personalizado, está marcado como “Megamenu”.

    Ou seja:

    Menu Home (Link personalizado)

    L sub menu página 1
    L sub menu página 2

    Assim, o texto”Menu home” está aparece na pagina de resultados do search. Se eu digito “Home” nesta busca, aparece um link, relativo a esse menu.

    Pode me ajudar?

    Obrigado!

    • Esta resposta foi modificada 6 anos, 2 meses atrás por Julinho.
    Moderador Felipe Elia

    (@felipeelia)

    Oi @razione,

    Você está usando algum plugin ou é o seu tema que faz com que essa opção de megamenu apareça? Se for por plugin, pode tentar desabilitá-lo, fazer uma nova busca e ver se o resultado some, por favor?

    Criador do tópico Julinho

    (@razione)

    Oi @felipeelia

    É através do tema, ele oferece essa opção de megamenu.

    O que você acha?

    Moderador Felipe Elia

    (@felipeelia)

    Oi @razione,

    Então, seu tema deve estar criando um tipo de conteúdo novo para gerenciar esses itens do megamenu, por isso eles aparecem na busca. Veja se o seu tema tem alguma chamada para a função register_post_type(). Se ele tiver, confira se essa chamada pode ter a ver com os itens do megamenu. Se achar que sim, experimente incluir 'exclude_from_search' => true no array que é passado como argumento para a função.

    Se você não encontrar absolutamente nada sobre isso, é possível incluir na busca somente conteúdos de tipos conhecidos. Para isso você pode usar um código como o aqui embaixo, que só exibe os posts e as páginas:

    function wpbr_77689_pre_get_posts( $query ) {
    	if ( ! is_admin() && $query->is_main_query() && $query->is_search() ) {
    		$query->set( 'post_type', array( 'post', 'page' ) );
    	}
    }
    add_action( 'pre_get_posts', 'wpbr_77689_pre_get_posts' );

    (escrevi aqui sem testar, então pode ser preciso alterar alguma coisa aí).

    Ah, e não esquece de voltar para dizer o resultado dos testes!

    Criador do tópico Julinho

    (@razione)

    Oi @felipeelia

    Vou fazer este teste, que você orientou e volto aqui para falar sobre.

    Obrigado desde já!

    Criador do tópico Julinho

    (@razione)

    Oi @felipeelia, tudo bom?

    Eu fiz as sugestões, porém, não obtive sucesso. De alguma maneira, a página de busca, exibe o nome do Menu como se fosse um post.

    Abaixo, o código da página, pode me ajudar?

    https://pastebin.com/zLGLqdG5

    • Esta resposta foi modificada 6 anos, 2 meses atrás por Felipe Elia. Razão: Colocando código no pastebin.com
    Moderador Felipe Elia

    (@felipeelia)

    Oi @razione,

    Que pena… Tente alterar a linha
    $query->set( 'post_type', array( 'post', 'page' ) );
    por
    $query->set( 'post_type', array( 'page' ) );
    e veja se só páginas são retornadas na busca, por favor.

    O problema não é no template que exibe as buscas, mas no código que o WP usa para obter os resultados. O seu código vai ter que trabalhar antes mesmo do WP usar este arquivo. Se a troca que eu falei aí em cima não funcionar, tente colocar um die( 'teste' ); na função e veja se teste é exibido na tela. Se não acontecer é sinal que o WP está ignorando esta função.

    Ah, um detalhe: quando for postar código muito grande aqui, por favor coloque no pastebin.com, beleza? Facilita a leitura 😉

    Criador do tópico Julinho

    (@razione)

    Olá, @felipeelia

    Funcionou!

    Obrigado pelo apoio, ajudou muito!

    Abraço!

    Criador do tópico Julinho

    (@razione)

    Olá, @felipeelia

    Agora, o menu está sumindo, apenas na página do search.

    Olhei o arquivo functions e não encontrei nada que pudesse dar conflito.

    Pode me ajudar?

    Código: https://pastebin.com/J1bUM1E0

    Moderador Felipe Elia

    (@felipeelia)

    Oi @razione,

    Que alteração você fez que passou a acontecer isso?

    Criador do tópico Julinho

    (@razione)

    Oi @felipeelia

    Alterei a linha para $query->set( ‘post_type’, array( ‘page’ ) );

    Moderador Felipe Elia

    (@felipeelia)

    Experimente tirar esse trecho:

        if (is_search() && !$spb && !is_admin()) {
            $query->set( 'post_type', array( 'page' ) );
        }
        return $query;

    e comentar a linha

    $search_array[] = 'nav_menu_item';

    e me conta se o menu voltou a aparecer ou não, por favor.

    Criador do tópico Julinho

    (@razione)

    Olá, @felipeelia

    Funcionou perfeitamente, tudo certo agora!

    Muito obrigado pela sua ajuda!

Visualizando 14 respostas - 1 até 14 (de um total de 14)
  • O tópico ‘Texto do menu fica aparecendo na página de busca’ está fechado para novas respostas.