Ordenar los posts por campo personalizado

Ejemplo de WP_Query para ordenar los registros de un Custom Post Type por el valor de un custom field


por

Si utilizas campos personalizados en tu WordPress, es posible que necesites que en la página de archivo, el listado de tus artículos aparezcan ordenados por uno de esos campos en concreto.

Para ello, podemos modificar los parámetros de la función get_query de la plantilla en concreto que estamos trabajando mediante meta_key y  orderby:

‘meta_key’ => ‘año’,
‘orderby’ => ‘meta_value_num’,

En este ejemplo más completo veremos la consulta completa para filtrar las entradas de un tipo de post personalizado, filtrando por los valores de un campo y ordenándolos por otro.

Tenemos un custom post type creado para dar de alta unos tipos de entradas de publicaciones, cuyos campos variarán un poco en función del tipo de publicación.

En esta página, queremos mostrar todas las publicación del tipo «comunicación» y ordenados por un campo personalizado «año». (Aunque podríamos haber utilizado el campo de fecha del post, en este caso no nos servía porque lo necesitábamos para una fecha distinta al año).

Una vez hecha la consulta, realizaremos el loop y mostraremos los datos generando el html y css a nuestra medida:

Con los argumentos en la consulta wp_query que nos interese  y la salida en html y css adecuada podremos personalizar cualquier listado de entradas y página de archivos de nuestra web.

¿Eres implementador o desarrollador WordPress?

En la Zona DPW encontrarás más recursos, tutoriales, plantillas, y una biblioteca de snippets para poder utilizar en tu día a día y ganar tiempo en tu trabajo:

ACCEDER AHORA

Comentarios

2 respuestas a «Ordenar los posts por campo personalizado»

  1. Avatar de Ecamisetas

    |

    Buenas tardes,
    es posible hacer eso pero con productos?
    Tengo productos que muestro el precio de 1000 y ese precio lo tengo en una variable $precio_final.
    es posible cambiar la forma de ordenar precio de bajo a alto pero con esa variable?

    Un saludo

    1. Avatar de esther

      |

      Hola!
      Pues en principio si es posible, ya que los productos no son más que otro tipo de post (post_type=’product’), pero tendrás que mirar cómo aplicarlo al loop de WooCommerce para que te sirva en las páginas de la tienda.
      Si encuentro algo que te pueda servir, lo añado.

      Saludos!