Suporte » Plugins » Dar prioridade às páginas na busca

  • Olá, amigos

    Meu problema é o seguinte:

    Quando o usuário faz uma busca no site, os primeiros resultados devem ser as páginas, e só depois aparecer os posts. Tem como?

    Obrigado, amigos

Visualizando 2 respostas - 1 até 2 (de um total de 2)
  • Isso é mais fácil do que pensei, nunca tinha pensado nisso, mas fiz alguns testes e descobri.

    Adicione ao seu functions.php a seguinte função

    function orderby_search_filter($query){
    	if ( $query->is_search ) {
    		$query->set( 'orderby', 'menu_order'  );
    	}
    
    	return $query;
    }
    add_filter( 'pre_get_posts', 'orderby_search_filter' );

    Agora só resta vc definir em suas páginas o parâmetro “ordem” localizado no metabox “atributos de Páginas” com um valor numérico.

    Se quiser controlar quais páginas vem antes de outras defina os valores em ordem crescente ou decrescente.

    Se definir o mesmo valor para todas (se não me engano) elas irão aparecer no topo da página, mas ainda mantendo a ordem de datas em que elas apareciam anteriormente.

    se vc já possui uma função ou plugin usando o filtro pre_get_posts aumente a prioridade desta função em relação a outras, adicionando um número maior que o padrão, ou que a sua função já está utilizando assim

    add_filter( 'pre_get_posts', 'orderby_search_filter', 20 );

    Uso constantemente este filtro e ele ainda continua a me surpreender, essa eu não sabia e mais uma vez aprendo tentando ajudar.

    Obrigado por mais este conhecimento.

    Criador do tópico Fernando Acosta

    (@amgnando)

    Mais fácil do que eu pensei também, ahaah

    Muito obrigado, amigo! Sempre atento ao fórum e disposto a ajudar. Obrigado por ajudar a fortalecer a comunidade WP no Brasil

    Um abraço!

Visualizando 2 respostas - 1 até 2 (de um total de 2)
  • O tópico ‘Dar prioridade às páginas na busca’ está fechado para novas respostas.