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.