¿Como hacer para que el buscador de wordpress busque en custom field?

Para hacer que el buscador de WordPress busque en custom field, debes seguir los siguientes pasos:

  • Accede al panel de administración de tu sitio WordPress y ve a Apariencia > Editor.
  • En el lado derecho de la pantalla, selecciona el archivo function.php de tu tema.
  • Añade el siguiente código al final del archivo function.php:
function search_custom_fields( $search, $wp_query ) {
global $wpdb;
if ( empty( $search ) )
    return $search; // skip processing - no search term in query

$q = $wp_query->query_vars;
$n = ! empty( $q['exact'] ) ? '' : '%';

$search =
$searchand = '';

foreach ( (array) $q['search_terms'] as $term ) {
    $term = esc_sql( like_escape( $term ) );
    $search .= "{$searchand}(";
    // search in title
    $search .= "($wpdb->posts.post_title LIKE '{$n}{$term}{$n}')";
    // search in content
    $search .= " OR ($wpdb->posts.post_content LIKE '{$n}{$term}{$n}')";
    // search in custom fields
    $search .= " OR EXISTS (
        SELECT * FROM $wpdb->postmeta
        WHERE post_id=$wpdb->posts.ID AND ($wpdb->postmeta.meta_key = 'nombre_del_campo_personalizado' AND $wpdb->postmeta.meta_value  LIKE '{$n}{$term}{$n}')
    )";
    $search .= ")";
    $searchand = ' AND ';
}

if ( ! empty( $search ) ) {
    $search = " AND ({$search}) ";
    if ( ! is_user_logged_in() )
        $search .= " AND ($wpdb->posts.post_password = '') ";
}

return $search;
}
add_filter( 'posts_search', 'search_custom_fields', 500, 2 );
  • En el código anterior, reemplaza «nombre_del_campo_personalizado» por el nombre del campo personalizado que quieres que se busque.
  • Guarda los cambios en el archivo function.php y cierra la página del editor.

Ahora, cuando los usuarios realicen una búsqueda en tu sitio, también se buscará en los campos personalizados que hayas especificado en el código, es sencillamente genial.


Foto de Perfil de Juan Luis Martel

Juan Luis Martel.

Profesional en Tecnologías Integradas - Desarrollo Web y Electrónica.

Las Palmas de Gran Canaria, España

Soy un apasionado de la programación con experiencia en Wordpress, PHP, PIC, Microcontroladores y ASM. Además, soy Técnico Especialista en Electrónica y también tengo experiencia como profesor en este campo. Mi pasión por la electrónica me ha llevado a combinar mis habilidades en programación con mi conocimiento técnico, lo que me permite crear soluciones innovadoras y eficientes en mis proyectos de paginas webs y de electrónica.

¡No te vayas sin valorar el contenido!

¡Haz clic en una estrella para puntuarlo!

Promedio de puntuación 0 / 5. Recuento de votos: 0

Hasta ahora, ¡no hay votos!. Sé el primero en puntuar este contenido.

Ya que has encontrado útil el contenido...

🙏 Ayúdame y compártelo en tus redes sociales ¡Significa mucho para mí! - Gracias

¡Siento que el contenido no te haya sido útil o gustado! 😔

¡Déjame mejorar este contenido!

Dime, ¿cómo crees que puedo mejorar este contenido? 🙏 ¡Significa mucho para mí! - Gracias

Deja un comentario