Quiero usar la función de búsqueda wordpress pero quiero que solo busque en las publicaciones de mi blog y excluya mis páginas estáticas de la consulta. ¿Como hacer esto? No me opongo a usar un plugin. foro sobreFunción de búsqueda de Wordpress para solo buscar publicaciones
Respuesta
este paquete de trabajo tiene un montón de diferentes ejemplos de cómo hacer esto, dependiendo de dónde desea editar su sitio (index.php o wp-includes/query.php son sus opciones creo):
http://wordpress.org/support/topic/possible-search-only-posts-exclude-pages
¡Impresionante! ¡Gracias! – Davey
Hm, parece que este es uno de los mejores puestos, pero para ser sincero, no es de mucha ayuda. Los dos métodos principales son A) Hackear el núcleo (lo cual no debería hacer) B) Descartar los resultados no deseados en la plantilla (ineficiente) Debe ser una forma más fácil de controlar lo que busca la búsqueda - sorprendente WP no tener una función para eso. –
si mira las fechas, puede ver que la publicación tiene más de 3.5 años. Espero que haya algo mejor por ahora que se relacione con la última versión de WP. – wajiw
<?php if (have_posts()) : while (have_posts()) : the_post();?>
<?php if (is_search() && ($post->post_type=='page')) continue; ?>
intente éste y dime si funciona.
Desafortunadamente, ese no funcionó. – Davey
Las soluciones descritas son deficientes. La edición del núcleo impide la capacidad de actualización de la instalación de WordPress. Tendrá que repetir ese cambio cada vez que actualice, lo cual debería estar haciendo. La otra solución coloca carga innecesaria en la base de datos al filtrar los resultados después de recuperarlos. La mejor solución:
En functions.php del tema, añadir una nueva función para escribir un formulario de búsqueda:
function custom_search_form($form, $value = "Search", $post_type = 'post') {
$form_value = (isset($value)) ? $value : attribute_escape(apply_filters('the_search_query', get_search_query()));
$form = '<form method="get" id="searchform" action="' . get_option('home') . '/" >
<div>
<input type="hidden" name="post_type" value="'.$post_type.'" />
<input type="text" value="' . $form_value . '" name="s" id="s" />
<input type="submit" id="searchsubmit" value="'.attribute_escape(__('Search')).'" />
</div>
</form>';
return $form;
}
Ahora, en la plantilla en la que desea la forma (o dentro de cualquier widgets que' he creado, esto fácilmente podría ser registrado como un widget en su lugar), esto:
<?= custom_search_form(null, 'Search posts', 'post'); ?>
los argumentos podría quedar fuera de la función & llamada, pero me parece que fue amable. La clave de todo esto es la entrada oculta 'post_type', que pasa el valor a la consulta. El valor predeterminado, post
, asegurará que solo se devuelvan las publicaciones.
En realidad, esto no funciona. Devuelve todas las páginas y las publicaciones en la búsqueda. – AndyWarren
En realidad, esto funciona. Esta es la mejor solución IMO. – mikeybeck
respuesta está aquí
http://www.shilling.id.au/2011/06/23/wordpress-search-only-show-post-and-not-pages/
<?php
function SearchFilter($query) {
if ($query->is_search) {
$query->set('post_type', 'post');
}
return $query;
}
add_filter('pre_get_posts','SearchFilter');
?>
Esto es exactamente lo que estaba buscando, ¡gracias! – Galen
¡Muchas gracias! –
La respuesta aceptada (y la publicación del foro vinculada) describen resultados deficientes. Nunca es una buena idea editar archivos centrales, y omitir resultados en el ciclo foreach podría resultar en problemas cuando se trata de paginación. ¡Este gancho es una solución mucho mejor! – mjsarfatti
Basta con añadir <input type="hidden" name="post_type" value="post" />
a la búsqueda de tema ... saludos!
¡Esto funcionó para mí! –
¡Esta es la mejor respuesta! ¡Vota arriba! –
Combina la consulta con la consulta global.
global $wp_query;
$args = array_merge($wp_query->query, array('post_type' => 'post'));
query_posts($args);
Puede usar WP Buscar http://wpsear.ch/ y se puede configurar qué tipos de mensaje para mostrar en los resultados.
Esta solución hace que la búsqueda recupere solo publicaciones si no ha especificado un tipo de publicación diferente. Este método no interferirá si especifica un tipo de publicación personalizado en un campo oculto en un campo de búsqueda diferente.
function searchFilter($query) {
if ($query->is_search) {
if (!isset($query->query_vars['post_type'])) {
$query->set('post_type', 'post');
}
}
return $query;
}
add_filter('pre_get_posts','searchFilter');
'<form role="search" method="get" id="searchform" class="searchform" action="' . esc_url(home_url('/')) . '">
<div>
<label class="screen-reader-text" for="s">' . _x('Search for:', 'label') . '</label>
<input type="text" value="' . get_search_query() . '" name="s" id="s" />
<input type="submit" id="searchsubmit" value="'. esc_attr_x('Search', 'submit button') .'" />
</div>'
</form>;
- 1. La búsqueda de WordPress solo funciona con publicaciones, no en las páginas
- 2. Publicaciones adhesivas de Wordpress con tipos de publicaciones personalizadas
- 3. Wordpress Mostrar todas las publicaciones
- 4. ¿Publicar publicaciones de Wordpress en Google plus?
- 5. Agregar publicaciones con miniatura programáticamente en WordPress
- 6. ¿Cómo recuperar las publicaciones que coinciden con una consulta de búsqueda en WordPress?
- 7. Wordpress recibe múltiples publicaciones por ID
- 8. Publicar publicaciones en WordPress usando jwordpress
- 9. Wordpress API: Agregar/Quitar Etiquetas en Publicaciones
- 10. Cargar contenido de publicaciones de Wordpress en DIV usando AJAX
- 11. Wordpress - Enumere todas las publicaciones (con proper_pagination)
- 12. Obtenga todas las publicaciones de la taxonomía personalizada en Wordpress
- 13. Búsqueda de la recomendación de resaltado de código para WordPress
- 14. ¿Cómo enlaza Wordpress las publicaciones a categorías en su base de datos?
- 15. ¿Diferente estructura de enlace permanente para publicaciones de blog que páginas en Wordpress?
- 16. cómo obtener publicaciones y títulos posteriores/anteriores en wordpress
- 17. ¿Cómo hago una página de archivo de Wordpress para publicaciones personalizadas y taxonomías?
- 18. Wordpress - Script en cola solo para IE
- 19. Cómo seleccionar publicaciones con etiquetas/categorías específicas en WordPress
- 20. de consulta para buscar temas en función de la etiqueta
- 21. hacer la búsqueda de wordpress solamente en post título
- 22. Wordpress Loop: ¿cómo envolver cada 3 publicaciones en un div?
- 23. botón 'buscar' para activar la función autocompletar
- 24. Mostrar solo publicaciones creadas la semana pasada
- 25. Active Directory: buscar solo objetos de usuario
- 26. ¿Usar el LOOP de Wordpress con páginas en lugar de publicaciones?
- 27. cómo obtengo solo 1 publicación de cada categoría en wordpress
- 28. Parámetros para la función de búsqueda
- 29. Función POSIX para buscar RUTA para un ejecutable?
- 30. ¿Cómo recuperar publicaciones de un blog de WordPress en una aplicación de Android?
Su solución obtendrá sobre-escrito al actualizar WordPress. –