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

¡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