CMS WordPress

[WordPress] Personalizando el sistema de búsqueda en 3 pasos: Buscador, página de resultados y redireccionamientos

Unplash.com by Nine Köpfer
[titulo] [WordPress] ¿Cómo crear una página de resultados de búsqueda personalizada?[/titulo]

WordPress incorpora un buscador de serie preparado para buscar post. Y cuando digo “post“, me refiero a entradas del tipo post, es decir, entradas del blog.

Aquellos que halláis trasteado código de algún plugin o tema especializado, ya habréis visto que en realidad, el [codigo]post_type[/codigo] es flexible y configurable.

Por ejemplo:

  • WooCommerce crea post_type personalizados, a los que llama Productos. Y sirven para crear productos de e-commerce.

De la misma forma, un tema de cocina, creará sus propios post_type a los que llamará recetas. Uno de inmobiliarias, post_type llamados inmuebles, etc

Esto quiere decir, que [subraya_rosa]el buscador que trae WordPress, no nos servirá para buscar en esos tipos especiales de contenidos[/subraya_rosa], y por ello casi todos los temas/plugins que los usan, o bien traen su propio buscador independiente (Ej: WooCommerce trae un buscador de productos), o bien editan el código del propio CMS.

Y eso es precisamente lo que vamos a aprender en esta entrada:

1º- Cómo editar el buscador de WordPress para buscar post_type personalizados.

2º- Cómo hacer que cuando busquemos un post_type personalizado, nos lo muestre en una plantilla diferente a la tradicional, pudiendo así mostrar ese contenido con el formato y forma que deseemos. A fin de cuentas, no se debe mostrar al usuario de la misma manera una entrada de blog que una receta de cocina, ¿no?

 

[titulo]El buscador de WordPress[/titulo]

El código HTML del buscador que trae por defecto es el siguiente:

 <div>   
    <h3>Search Products</h3>
    <form role="search" action="<?php echo site_url('/'); ?>" method="get" id="searchform">
    <input type="text" name="s" placeholder="Search Products"/>
    <input type="hidden" name="post_type" value="post" />
    <input type="submit" alt="Search" value="Search" />
  </form>
 </div>

Donde, en el campo oculto, se especifica el tipo de contenido (por defecto, post):

<input type="hidden" name="post_type" value="post" />

Lo único que debemos hacer es crear, en caso de no tenerlo ya, un tipo nuevo de contenido y ponerlo en este formulario:

1º – Vamos vía FTP al [codigo]functions.php[/codigo] y añadimos el siguiente código para definir un nuevo tipo de contenido:

function create_posttype() {
 
    register_post_type( 'recetas',
        array(
            'labels' => array(
                'name' => __( 'Recetas' ),
                'singular_name' => __( 'Receta' )
            ),
            'public' => true,
            'has_archive' => true,
            'rewrite' => array('slug' => 'recetas'),
        )
    );
}
add_action( 'init', 'create_posttype' );

Esto creará un nuevo post_type llamado “recetas”.

2º- Ponemos el código del buscador donde deseemos que se muestre, o editamos el archivo principal que lo contiene, cuya ubicación variará dependiendo del tema (muy usualmente en [codigo]header.php[/codigo]). Y sustituímos el name del campo hidden por el tipo de contenido que acabamos de crear:

<div>   
    <h3>Search Products</h3>
    <form role="search" action="<?php echo site_url('/'); ?>" method="get" id="searchform">
    <input type="text" name="s" placeholder="Search Products"/>
    <input type="hidden" name="post_type" value="recetas" />
    <input type="submit" alt="Search" value="Search" />
  </form>
 </div>

 

[titulo]Indicar a nuestro tema qué debe hacer cuando alguien utilice el buscador[/titulo]

La siguiente función, que debe añadirse también al [codigo]functions.php[/codigo], detectará cuando se esté buscando un post_type concreto, y redireccionará al usuario a una plantilla totalmente personalizada:

function template_chooser($template)   
{    
  global $wp_query;   
  $post_type = get_query_var('post_type');   
  if( $wp_query->is_search && $post_type == 'recetas' )   
  {
    return locate_template('archive-search.php');  //  redirect to archive-search.php
  }   
  return $template;   
}
add_filter('template_include', 'template_chooser');

Exactamente dice, cuando estés realizando una búsqueda de “recetas”, no vayas a la página de resultados por defecto, redirecciónalo a una página nueva llamada “archive-search.php

 

[titulo]Creando una plantilla para los resultados de búsqueda personalizados[/titulo]

Y aquí tendríamos el mínimo código posible para crear la plantilla y representar los resultados de búsqueda, con la estética del resto de la página:

<?php
        /* Template Name: Custom Search */        
        get_header(); ?>             
        <div class="contentarea">
            <div id="content" class="content_right">  
                     <h3>Search Result for : <?php echo "$s"; ?> </h3>       
                     <?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>    
                <div id="post-<?php the_ID(); ?>" class="posts">        
                     <article>        
                    <h4><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></h4>        
                    <p><?php the_exerpt(); ?></p>        
                    <p align="right"><a href="<?php the_permalink(); ?>">Read     More</a></p>    
                    <span class="post-meta"> Post By <?php the_author(); ?>    
                     | Date : <?php echo date('j F Y'); ?></span>    

                    </article><!-- #post -->    
                </div>
        <?php endwhile; ?>
    <?php endif; ?>




           </div><!-- content -->    
        </div><!-- contentarea -->   
        <?php get_sidebar(); ?>
        <?php get_footer(); ?>

 

 

Cristian Sarabia Martínez

Desde que a principios de los 90 mi padre desempolvó su Spectrum, no he dejado de probar y experimentar con la tecnología.

Enamorado del mundo web, Full Stack Developer de profesión y diseñador por devoción.

Ahora hago mis pinitos en esto del blogging para compartir con vosotros un poquito de todo lo que la comunidad me ha dado.

Escribir comentario

Haz clic aquí para dejar tu comentario

Flickr

  • Broken glass
  • Piscine façon Hockney
  • Nuit blanche
  • Voisin
  • Edia
  • Africa
  • Dar
  • Café La Rose
  • Doors

About Author

ThemeForest

Collaboratively harness market-driven processes whereas resource-leveling internal or "organic" sources. Competently formulate.

Calendar

septiembre 2024
L M X J V S D
 1
2345678
9101112131415
16171819202122
23242526272829
30  

RSS Meks Blog

  • How Adding Slack Bot Boosted Our Culture of Appreciation 3 julio, 2024
    Sweet Kudos is a Slack bot that enhances employee recognition, rewards, and celebrations within your team. It empowers team members to express gratitude and appreciation effortlessly by giving virtual Kudos. The post How Adding Slack Bot Boosted Our Culture of Appreciation appeared first on Meks.
    Dusan Milovanovic
  • 10 Best Knowledge Base & Wiki WordPress Themes 2021 15 septiembre, 2021
    Running a successful online business requires an exceptional WordPress knowledge base theme that organizes documentation and helps customers. Customization options, intuitive navigation, unique layouts, and fast responsiveness are just some of the features you need. The following 10 WordPress wiki themes represent the best options for 2021 and beyond. Explore the full range to determine […]
    Dusan Milovanovic
  • How to increase WordPress Memory Limit (quick fixes) 16 junio, 2021
    Here is a post about how to increase the memory limit in WordPress. Allowed memory size exhausted error message showed up in your WordPress installation? No worries – this is one of the most common errors in WordPress. You can apply an easy fix by increasing the memory limit in your PHP. Table of Contents […]
    Dusan Milovanovic
  • How to use (and why) WordPress sitemap plugin 1 marzo, 2021
    Did you know that by knowing how to use the WordPress sitemap plugin you can significantly improve your site’s visibility and traffic? Although it isn’t mandatory to have a sitemap on your site, having one significantly improves the site’s quality, crawlability and indexing. All this is important for better optimization, which is why we wanted […]
    Ivana Cirkovic
  • 22 free and premium podcast software for your show [2021 edition] 18 enero, 2021
    You’re determined to start or improve your podcast but don’t know which podcast software to use to really make it stand out? We’ve got you! #podcasting Top 22 free and premium podcast software for your show #WordPressTips #podcasting The post 22 free and premium podcast software for your show [2021 edition] appeared first on Meks.
    Ivana Cirkovic
  • Digital storytelling with WordPress – an all-in-one guide to make your web stories pop! 23 noviembre, 2020
    Wondering how to improve digital storytelling with WordPress and build more awareness and exposure of your business? Let our guide lead the way. The post Digital storytelling with WordPress – an all-in-one guide to make your web stories pop! appeared first on Meks.
    Ivana Cirkovic
  • How to use WordPress autoposting plugin to improve your visibility and SEO? 10 septiembre, 2020
    Did you know you can use the WordPress autoposting plugin for your content efforts and improve not only your time management but your business and visibility as well? The post How to use WordPress autoposting plugin to improve your visibility and SEO? appeared first on Meks.
    Ivana Cirkovic
  • How to create a personal branding site? Step-by-step DIY guide 15 agosto, 2020
    Looking for ways and means to create a personal branding site? Well, look no further ’cause we’re giving away all the how-to’s to do it yourselves! The post How to create a personal branding site? Step-by-step DIY guide appeared first on Meks.
    Ivana Cirkovic
  • Top 15 WordPress content plugins and tools to improve your visibility and rankings 16 julio, 2020
    Let’s take a look at some of the must-have WordPress content plugins and tools to use to improve both your UX and rankings. The post Top 15 WordPress content plugins and tools to improve your visibility and rankings appeared first on Meks.
    Ivana Cirkovic
  • WCEU 2020 recap – key takeaways from the biggest online WordPress conference 9 junio, 2020
    Missed WCEU 2020 and all the exciting stuff from there? Here are all the key takeaways and main points to remember so, take notes! The post WCEU 2020 recap – key takeaways from the biggest online WordPress conference appeared first on Meks.
    Ivana Cirkovic

Text

Distinctively utilize long-term high-impact total linkage whereas high-payoff experiences. Appropriately communicate 24/365.

Archives