entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

1voto

Buscador en Wordpress

Buenas tardes,

estoy creando un buscador dentro de mi página de wordpress(plantilla de página de portfolio), y lo que quiero es que cuando hago una búsqueda me aparezcan los items del portfolio que coincidan con el nombre( el título del proyecto de portfolio).

<form method="get" id="searchform" action="<?php bloginfo('home'); ?>/”>
<div><?php $id_categoria = get_cat_id('portafolio'); ?>
<input type="text" value="<?php echo wp_specialchars($s, 1); ?>" name="s" id="s" >
<input type="hidden" name="cat" value="<?php echo $id_categoria; ?>" >
<input type="submit" id="searchsubmit" value="Buscar" >
</div>
</form>

Pero no consigo hacer que funcione bien, ya que cuando busco me saca muchas cosas como las categorías a la derecha, archivos,etc..

Un saludo.

3 Respuestas

1voto

jabixo Puntos1580

Ya lo solucioné.

Para que aparezca tipo grid , lo que hice es modificar el archivo search.php con el siguiente código:

    < ?php if(have_posts()): while(have_posts()) : the_post(); ?>

                        < div class="buscador post <?php echo $post_type; ?>">
< ?php if(has_post_thumbnail()) the_post_thumbnail('thumb'); //agrego thumbnail si existe?>
< ?php if($post_type == 'post') { $category = get_category();  echo $category[0]->name;  } ?>
< h4>< a href="< ?php the_permalink(); ?>" title="< ?php the_title(); ?>">< ?php the_title(); ?>< /a>< /h4>< /div>

                                <?php $post_type = get_post_type(); ?>

                        <?php endwhile; ?>

Gracias a los q me ayudásteis :)

0voto

Peter Puntos150460

Me parece que tienes una confusión, pero vamos a aclararlo para que puedas hacer lo correcto.

  • Tu portafolio es una categoría. ¿Correcto?
    No es un custom post type, tienes todas las publicaciones en la categoría "portafolio" y esas son las que quieres mostrar.

  • La barra lateral no son resultados.
    Si del lado derecho te salen las categorías, los últimos comentarios, archivos, etc... Es porque los tienes ahí como widgets en tus páginas o publicaciones, no porque sean un resultado de búsqueda. ¿A eso te refieres?

Entonces estas confundiendo elementos de la web, como es la barra lateral, con resultados de una búsqueda.

Si te salen todos los resultados en el centro de la pagina, que es donde se muestra el contenido y además se muestra la barra lateral con su contenido, lo que quieres es quitar la barra lateral.

Y para ello tienes que quitar lo siguiente a tu plantilla:

<?php get_sidebar(); ?>

Saludos.

0voto

jabixo comentado

Sí eso lo quité, lo que quiero es que me salga cada proyecto que coincida con la busqueda pero con el div de fuera y que pinches a el que quierar ver. Porque lo que me sucede ahora es que cuando hago una búsqueda me aparece el resultado pero me aparece el contenido del proyecto de portfolio, y lo que quiero es que aparezca antes de entrar en él todos los recuadros de los proyectos que coinciden con la búsqeda. No sé si me explico...
Puedo poner el enlace para que quede más claro si quieres.

Gracias y un saludo!

0voto

Peter comentado

Tu portafolio es una categoría. ¿Correcto?

Si, pon un enlace porque no acabo de entender como es el resultado que buscas.

0voto

jabixo comentado

Ok pongo el enlace, es un directorio de chicas de compañía.

Lo que quiero es que al buscar por nombre aparezca de esta forma donde está abajo de las categorías de portfolio:

http://www.eliana-online.com/valenciamor1

Es decir que salgan en forma de portfolio , ya que cada chica es un proyecto diferente. Así , si tengo dos chicas que se llaman Sara ( por ejemplo) , poder elegir en cual quiero entrar, ya que si pruebas el buscador de mi web aparece de diferente manera.

Saludos.

0voto

Peter comentado

Es lo que te pregunte dos veces arriba y no me contestaste :). Estas implementando un buscador por categorías y necesitas uno por custom type. Busca uno para eso y listo.

Saludos.

0voto

jabixo comentado

Jeje no te entendí bien. Puedes decirme qué buscador es exactamente , porque estoy buscando plugins pero no encuentro exáctamente el que dices. Saludos y gracias

0voto

Peter comentado

En wordpress tienes categorias al publicar cosas, un post normal va en una o varias categorías al ser publicado. Otra cosa completamente diferente son los custom types, que es un tipo personalizado de post.

Tu estas implementando un buscador en categorías, cuando lo que necesitas es un buscador de custom type posts.

1voto

Villanuevand Puntos5730

Efectivamente, cómo dice @Peter estás implementando un buscador de categorías y necesitas un buscador de custom type post para esto debes incluirlos en la funcionalidad de busqueda de wordpress. Lo que debes realizar es insertar el siguiente código en el functions.php.

<?php
function include_post_types_in_search($query) {
    if(is_search()) {
        $post_types = get_post_types(array('public' => true, 'exclude_from_search' => false), 'objects');
        $searchable_types = array();
        if($post_types) {
            foreach( $post_types as $type) {
                $searchable_types[] = $type->name;
            }
        }
        $query->set('post_type', $searchable_types);
    }
    return $query;
}
add_action('pre_get_posts', 'include_post_types_in_search');
?>`

En donde la función include_post_types_in_search lo que haces es verificar si es una busqueda (is_search) de los $post_types con un arreglo de caracteristicas definido. Te recomiendo ver la documentacion de get_post_typesen el Codex.
Ojalá sea de tú ayuda!

0voto

jabixo comentado

Puse ese mismo código en functions.php y no cambió nada. No se como hacerlo , me estoy volviendo loco xD Ayuda please :D

0voto

Peter comentado

@jabixo estoy moviendo tus respuestas a comentarios, que es lo que son. Si lo pones como respuesta, a quien le quieres contestar no recibe nada, tienes que responder como comentario y no como una respuesta nueva.

Saludos.

0voto

Villanuevand comentado

Muestranos el código que de lo que estás desarrollando para poder ayudarte, en vista de que ninguno de las respuestas que te han dado funciona.

0voto

jabixo comentado

El formulario de búsqueda que está en el index es este:

    <div id="busquedaNombre">

<h4><b>Búsqueda por Nombre</b></h4>

 <form method="get" id="searchform" class="hide-input" action="< ?php echo esc_url( home_url( '/' ) ); ?>">
    <input type="text" name="s" id="s" placeholder="< ?php esc_attr_e( 'Ana, María, Cristina...', ETHEME_DOMAIN ); ?>">
    <input type="hidden" name="post_type" value="etheme_portfolio">
    <input type="submit" value="<?php esc_attr_e( 'Buscar', ETHEME_DOMAIN ); ?>" class="button">
    <div class="clear"></div>

    </div>

Y el código que hay en la página que se recibe la búsqueda ( search.php) es este:

<?php if(have_posts()): while(have_posts()) : the_post(); ?>

                            <?php get_template_part('content', $blog_layout); ?>

                    <?php endwhile; ?>

                <?php if ($blog_layout == 'grid'): ?>
                    </div>
                <?php endif ?>

            <?php else: ?>

                <h1><?php _e('No posts were found!', ETHEME_DOMAIN) ?></h1>

            <?php endif; ?>

Hagan una prueba de búsqueda en valenciamor.com ( la web que estoy desarrollando) , y en valenciacitas.com ( Así es como quiero que se refleje la búsqueda).

Comparen los dos tipos de búsqueda y si alguien sabe como hacerlo.. por favor que me lo digo ,

gracias :D

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta