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

search 

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');

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');

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


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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.