¿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.

¿De cuánta utilidad te ha parecido este 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 este contenido...

¡Compártelo en tus redes sociales - Gracias!

¡Siento que este contenido no te haya sido útil!

¡Déjame mejorar este contenido!

Dime, ¿cómo puedo mejorar este contenido?

Deja un comentario