¿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

search 

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

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

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


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

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.