Ordenar WP_Query por valor de custom field
Tómese este artículo como una breve extensión de los artículos WP_Query, sacándole jugo a WordPress y Metaboxes en WordPress, cómo crearlos.
¿Que por qué es una breve extensión de ambos? Porque en el primero te explico cómo funciona WP_Query, y en el segundo cómo introducir custom fields con metaboxes en tus post types (ah, si; también tengo un artículo para explicarte los Custom Post Types).
Ahora que ya sabes cómo consultar con WP_Query y crear custom fields en tus posibles Custom Post Types (o los propios de WordPress), voy a explicarte cómo ordenar esas consultas personalizadas en WordPress en base al valor de un custom field.
Cuando definimos los argumentos del WP_Query personalizado, podemos especificar que ordene por un meta_value, de esta forma:
$args = array(
'post_type' => 'post',
'posts_per_page' => -1, // NO HACER ESTO, es una muestra
'orderby' => 'meta_value'
);
Lenguaje del código: PHP (php)
El problema es que esto es muy random: ¿Por qué campo meta ordenamos? ¿Qué criterio seguimos?
Podemos especificar el campo en sí y, además, podemos decirle que tome su contenido como un tipo de contenido concreto (String, entero, etc…). Para muestra, un botón:
$args = array(
'post_type' => 'post',
'posts_per_page' => -1, // NO HACER ESTO, es una muestra
'orderby' => 'meta_value',
'meta_key' => 'post-votos',
'meta_type' => 'NUMERIC'
);
Lenguaje del código: PHP (php)
Si te fijas, hemos ampliado el ejemplo anterior con los campos «meta_key» y «meta_type». El primero ataca al campo personalizado «post-votos» y el segundo referencia que debemos tratar el dicho campo con valor numérico ( aquí podríamos alternar este valor con los tipos más comunes: ‘NUMERIC’, ‘BINARY’, ‘CHAR’, ‘DATE’, ‘DATETIME’, ‘DECIMAL’, ‘SIGNED’, ‘TIME’ o ‘UNSIGNED’).
Con todo esto, estaremos filtrando los artículos de nuestro sitio web o blog en base al número de votos que han recibido los artículos (ejemplo ficticio).
¿Te gusta la idea? ¡Compártela con tus amigos!
Gracias Darío, no conseguía que funcionara y me tu artículo me ha servido de ayuda.
Saludos!
Nacho