• Saltar a la navegación principal
  • Saltar al contenido principal
  • Saltar a la barra lateral principal

Dani Sánchez

  • ¿Eres agencia?
  • Quién soy
  • Servicios WordPress
    • Mantenimiento
    • Maquetación & Desarrollo
    • Soporte técnico
  • Portfolio
  • Blog
  • Presupuestos
Estás en: Inicio / Divi / Divi, hacer que el módulo de búsqueda funcione en Custom Posts

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

El 4 de enero de 2020 por dani.sanchez

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.

Publicado en: Divi, Tutoriales, WordPress Etiquetado como: divi, wordpress

¿Quiéres invitarme a un café?

Si te has fijado en este blog no hay ni rastro de publicidad, todo el contenido publicado lo hago de forma artruista al igual que yo recurro a otros sitios cuando necesito algo. Pero si te he servido de ayuda y quieres agradecérmelo, puedes hacer una pequeña donación (el importe que quieras):

Entradas similares

  • Cerrar modales de Elementor con JavaScript (jQuery)
  • Redirección 301 para cambios de dominio
  • Guía rápida de Flexbox
  • Filtro de WooCommerce para personalizar el mensaje de «Gracias por tu pedido»
  • Portátiles reacondicionados, ¿mejor que uno nuevo?

Interacciones con los lectores

Comentarios

  1. carlos gutierrez dice

    22 de septiembre de 2020 a las 21:09

    Hola me dice error fatal al poner el codigo en php

    • dani dice

      23 de septiembre de 2020 a las 12:05

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

  2. Gustavo Pascaner dice

    22 de noviembre de 2020 a las 21:54

    excelente post. mil gracias por la ayuda! =)

Barra lateral principal

Autor

Dani Sánchez

logo mastodon @danisanchez

Entradas recientes

  • Iniciar sesión en nuestros VPS mediante SSH Keys
  • Cerrar modales de Elementor con JavaScript (jQuery)
  • Redirección 301 para cambios de dominio
  • Guía rápida de Flexbox
  • Filtro de WooCommerce para personalizar el mensaje de «Gracias por tu pedido»

Comentarios recientes

  1. Brandon Portes en Taller de verano de WooCommerce #1
  2. Sebastian en Instalar WordPress + MySQL + phpMyAdmin desde Docker Compose
  3. Rigol en Instalar LAMP (Linux, Apache, MySQL y PHP) en Fedora
  4. dani.sanchez en Instalar WordPress + MySQL + phpMyAdmin desde Docker Compose
  5. rikylinux en Instalar WordPress + MySQL + phpMyAdmin desde Docker Compose

Categorías

  • Actualidad
  • Afiliación AliExpress
  • Agent Press Pro
  • Bettaso Web Restaurantes
  • Cursos
  • Destacado
  • Divi
  • Drupal
  • Elementor
  • Genesis
  • Iniciación a PHP
  • Joomla!
  • Linux
  • Publicaciones
  • Tutoriales
  • WooCommerce
  • WordPress
Medium banner says Support Inkscape
Banner pie de página

Maquetación web, landings, blogs y tiendas online
cuidando hasta el mínimo detalle

Si necesitas que desarrolle tu proyecto web ponte en contacto conmigo.

Contacto
  • Mastodon
  • YouTube
  • LinkedIn

Alojado con energía 100% verde

Dani Sánchez © 2025 · Política de privacidad · Política de cookies