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'
);

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'
);

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!

Puede mejorarNo está malMe gustaEs bueno¡Excelente! (1 votos, promedio: 5,00 de 5)
Cargando…

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*

*

DARÍO BALBONTÍN FERNÁNDEZ es el Responsable del tratamiento de los datos personales del usuario y le informa que estos datos serán tratados de conformidad con lo dispuesto en el Reglamento (UE) 2016/679 de 27 de abril de 2016 (GDPR), por lo que se le facilita la siguiente información del tratamiento: Fin del tratamiento: mantener una relación comercial y el envío de comunicaciones sobre nuestros productos y servicios. Criterios de conservación de los datos: se conservarán mientras exista un interés mutuo para mantener el fin del tratamiento y cuando ya no sea necesario para tal fin, se suprimirán con medidas de seguridad adecuadas para garantizar la seudonimización de los datos o la destrucción total de los mismos.Comunicación de los datos: No se comunicarán los datos a terceros, salvo obligación legal. Derechos que asisten al usuario: Derecho a retirar el consentimiento en cualquier momento. Derecho de acceso, rectificación, portabilidad y supresión de sus datos y a la limitación u oposición al su tratamiento. Derecho a presentar una reclamación ante la Autoridad de control (agpd.es) si considera que el tratamiento no se ajusta a la normativa vigente. Datos de contacto para ejercer sus derechos: contacto@dariobf.com.