Como faço para remover as páginas da pesquisa?

13

Não preciso pesquisar páginas no meu site e só quero pesquisar postagens. Existe uma maneira de fazer isso? obrigado


fonte

Respostas:

28

O abaixo deve fazer com que o tipo de postagem na página não possa mais ser pesquisado.

function remove_pages_from_search() {
    global $wp_post_types;
    $wp_post_types['page']->exclude_from_search = true;
}
add_action('init', 'remove_pages_from_search');
prettyboymp
fonte
Onde coloco esse código? Obrigado
Você pode colocá-lo em functions.php do seu tema.
prettyboymp
Muito obrigado. Eu apenas copiei colei e funciona perfeitamente #
13

O seguinte em functions.php também funciona bem:

//Remove pages from search results
function mySearchFilter($query) {
if ($query->is_search) {
$query->set('post_type', 'post');
}
return $query;
}
add_filter('pre_get_posts','mySearchFilter');
Arnold
fonte
deve ser a solução. mais elegante, mais sustentável. hte acima apenas modifica os parâmetros de tipo de postagem, este na própria consulta de pesquisa. 1
kaiser
Modificar o objeto de tipo de postagem para o tipo de postagem 'página' é uma solução melhor. Essa solução força o tipo de postagem a ser definido como 'post' para todas as consultas de pesquisa, o que impediria que qualquer tipo de postagem personalizado aparecesse na pesquisa, se um site tivesse algum. A configuração global da propriedade exclude_from_search do objeto de tipo de postagem 'page' significa que qualquer código que depende da verificação dessa propriedade terá as informações corretas.
prettyboymp
Link um pouco relevante com um pouco mais de informação: codex.wordpress.org/…
its_me 27/02/2013
Funciona bem, mas não mostra o tópico no bbpress, por isso não é bom. Usando "$ wp_post_types ['page'] -> exclude_from_search = true;" é um bom opções parece
Kishore Sahoo
0

coloque isso no seu search.php

<?php if (is_search() && ($post->post_type=='page')) continue; ?>

logo abaixo deste código -> <?php if ( have_posts() ) : while ( have_posts() ) : the_post();?>

você pode encontrar mais informações aqui http://wordpress.org/support/topic/possible-search-only-posts-exclude-pages

andrewk
fonte
Eu não tenho um search.php se eu recuperar um de outro tema, ele funcionará? Obrigado
sim. primeiro crie um search.php em branco e depois copie e cole o código do index.php. então faça o que eu te disse acima.
andrewk
1
na verdade, você deve usar o código do @ prettyboymp. é mais fácil e faz o que você pediu. eu testei. se você quiser ..
andrewk