¿Cómo elimino las páginas de la búsqueda?

13

No necesito buscar páginas en mi sitio y solo quiero buscar publicaciones, ¿hay alguna manera de hacerlo? Gracias


fuente

Respuestas:

28

Lo siguiente debería hacer que el tipo de publicación de la página ya no se pueda buscar.

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
fuente
¿Dónde coloco ese código? Gracias
Puede colocarlo en functions.php de su tema.
prettyboymp
Muchas gracias Acabo de copiarlo y lo pegué y funciona perfectamente
13

Lo siguiente en functions.php también funciona bien:

//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
fuente
debe ser la solución. Más elegante, más fácil de mantener. Lo anterior solo modifica los parámetros de tipo de publicación, esta es la consulta de búsqueda en sí. +1
kaiser
Modificar el objeto de tipo de publicación para el tipo de publicación de 'página' es una mejor solución. Esta solución obliga al tipo de publicación a establecerse como 'publicación' para todas las consultas de búsqueda, lo que evitaría que cualquier tipo de publicación personalizada se muestre en la búsqueda si un sitio tuviera alguna. Establecer globalmente la propiedad exclude_from_search del objeto de tipo de publicación 'página' significa que cualquier código que dependa de verificar esta propiedad tendrá la información correcta.
prettyboymp
Enlace algo relevante con un poco más de información: codex.wordpress.org/…
its_me
Funciona bien pero no es un tema impactante en bbpress, por lo que no es bueno. Usando "$ wp_post_types ['página'] -> exclude_from_search = true;" es una buena opción parece
Kishore Sahoo
0

pon esto en tu search.php

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

justo debajo de este código -> <?php if ( have_posts() ) : while ( have_posts() ) : the_post();?>

puede encontrar más aquí http://wordpress.org/support/topic/possible-search-only-posts-exclude-pages

andrewk
fuente
No tengo un search.php si recupero uno de otro tema ¿funcionará? Gracias
si. primero cree un search.php en blanco, luego copie y pegue el código de index.php. entonces haz lo que te dije arriba.
Andrew
1
en realidad deberías usar el código de @ prettyboymp. es más fácil y hace lo que le pediste. Lo probé. si quieres ..
Andrew