• Ir a navegación principal
  • Ir al contenido principal
  • Ir a la barra lateral primaria
  • Ir al pie de página

Dani Sánchez - Gestionatuweb

Desarrollador web freelance - Dani Sánchez Gestionatuweb

  • ¿Eres agencia?
  • WordPress
    • Mantenimiento
    • Desarrollo
    • Soporte técnico
  • Cursos
  • Porfolio
  • Blog
  • Contacto
  • Solicita Presupuesto
Estás aquí: Inicio / Divi / Divi, hacer que el módulo de búsqueda funcione en Custom Posts

Divi, Tutoriales, Wordpress / 4 de enero de 2020

Divi, hacer que el módulo de búsqueda funcione en Custom Posts

Por defecto, el módulo de búsqueda de Divi solo ofrece resultados provenientes de páginas y entradas (los tipos de post por defecto de WordPress).

Pero si nuestra web tiene contenidos personalizados, es posible que necesitemos ampliar las búsquedas a este tipo de contenidos.

Este artículo también está disponible en vídeo:

Para integrar custom posts en el módulo de búsqueda tenemos que añadir la siguiente función al archivo de funciones de Divi (se recomienda crear un child theme), o en nuestro propio plugin de funciones.

function custom_remove_default_et_pb_custom_search() { 
    remove_action( 'pre_get_posts', 'et_pb_custom_search' ); 
    add_action( 'pre_get_posts', 'custom_et_pb_custom_search' ); 
} 
add_action( 'wp_loaded', 'custom_remove_default_et_pb_custom_search' ); 
 
 function custom_et_pb_custom_search($query = false){ 
    if(is_admin() || ! is_a($query, 'WP_Query') || ! $query->is_search){ 
        return; 
    } 
 
    if(isset($_GET['et_pb_searchform_submit'])){ 
    $postTypes = array(); 
 
        if(!isset($_GET['et_pb_include_posts']) && ! isset($_GET['et_pb_include_pages'])){ 
            $postTypes = array('post'); 
        } 
    
        if(isset($_GET['et_pb_include_pages'])){ 
            $postTypes = array('page'); 
        } 
    
        if(isset($_GET['et_pb_include_posts'])){ 
        $postTypes[] = 'post'; 
        } 
    
        /* Comienza a añadir tus custom posts*/ 
        $postTypes[] = 'vehiculos'; 
        /* Fin añadir tus custom posts*/ 
    
        $query->set('post_type', $postTypes); 
    
        if(! empty($_GET['et_pb_search_cat'])){ 
                $categories_array = explode(',', $_GET['et_pb_search_cat']); 
            $query->set('category__not_in', $categories_array); 
        } 
    
        if(isset($_GET['et-posts-count'])){ 
            $query->set( 'posts_per_page', (int) $_GET['et-posts-count']); 
        } 
    } 
} 

Presta atención a la línea:

/* Comienza a añadir tus custom posts*/ 
        $postTypes[] = 'vehiculos'; 
/* Fin añadir tus custom posts*/

Donde ‘vehiculos’ es el identificador del custom posts que queremos añadir a la búsqueda. Si necesitamos añadir más tipos de posts, solo tenemos que asignarlos al $postTypes[] línea a línea:

$postTypes[] = 'mi_custom_post';
$postTypes[] = 'otro_custom_post';
...

En esta web de vehículos, si intentamos buscar el nombre de un coche sin integrar el código anterior, no obtendremos ningún resultado de búsqueda.

En cambio, integrando el código anterior:

Recuerda que puedes adquirir Divi desde mi enlace de afiliado con descuentos de hasta el 20%, así me ayudarás a seguir creando contenidos sobre Divi en mi Blog y en Youtube.

COMPRAR DIVI

https://www.elegantthemes.com/affiliates/idevaffiliate.php?id=57236&url=61763

Archivado en:Divi, Tutoriales, Wordpress Etiquetado con:divi, wordpress

Interacciones con los lectores

Este artículo puede contener código que podría no funcionar correctamente en tu versión de WordPress o causar incompatibilidad con tu plantilla o plugins. Úsalo bajo tu responsabilidad y haz siempre copia de tus archivos antes de modificarlos.

Comentarios

  1. carlos gutierrez dice

    22 de septiembre de 2020 en 21:09

    Hola me dice error fatal al poner el codigo en php

    Responder
    • dani dice

      23 de septiembre de 2020 en 12:05

      Puede que hayas pegado el código dentro de otra función existente o fuera de las llaves de PHP ()

      Responder
  2. Gustavo Pascaner dice

    22 de noviembre de 2020 en 21:54

    excelente post. mil gracias por la ayuda! =)

    Responder

Responder a dani Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

  Acepto la política de privacidad

Barra lateral primaria

Daniel Sánchez

@danisanchez82
t.me/gestionatuweb

Buscar en la web

Diseña con DIVI

Diseña con Divi
Plantilla Divi con un 20% de descuento.

Hosting de confianza

Footer

Buscar en la web

  • Inicio
  • Agencias
  • Mantenimiento WordPress
  • Desarrollo WordPress
  • Soporte técnico WordPress
  • Cursos
  • Portfolio
  • Blog
  • Contacto
  • Política de privacidad

Mis redes

  • Facebook
  • LinkedIn
  • Twitter
  • YouTube

© 2016–2021 Gestionatuweb · Programado con Genesis Framework · Iniciar sesión

Utilizo cookies para obtener datos estadísticos sobre el uso de mi sitio web y personalizar la publicidad (no intrusiva) del blog según tus intereses. En ningún caso estas cookies te identifican como persona, solo a tu dispositivo en la Red. Aceptando el uso de cookies me ayudarás a mantenener el blog gracias a la publicidad y podré mejorar la experiencia de uso gracias a la analítica web. Puedes navegar por mi sitio web sin que se instale ninguna de estas cookies, aunque este mensaje permanecerá visible en todo momento.AceptoPolítica de privacidad