Cómo cambiar el orden de tus posts de WordPress

Hace poco tiempo tuve que dar la posibilidad a un usuario de cambiar de manera simple el orden de un Custom Post Type para alterar un listado en el frontend y fue cuando me di cuenta las distintas posibilidades que existen para llevar adelante esta funcionalidad.

Vamos a ver en detalle todas estas posibilidades con los pros y contras de cada una de ellas.


Método por defecto

Por defecto los post están ordenados por fecha de publicación en forma descendente, esto significa que los últimos posts escritos son los primeros que se muestran en el frontend.

Sabiendo esto podemos alterar el orden de los mismos modificando su fecha de publicación haciendo uso de la «Edición rápida» del listado de post.

Pros:

  • No hace falta instalar ningún plugin.

Contras:

  • Perdemos la fecha original de publicación del post.
  • Es un auténtico quebradero de cabeza hacerlo de esta manera.

Utilizando el campo «Orden»

Podemos registrar nuestro Custom Post Type con el atributo page-attributes para que agregue el campo «Orden».

<?php
function crear_custom_post_type_charlas() {
	$args = [
		'has_archive' => true,
		'labels'    => [
			'name' => 'Charlas',
		],
		'public' => 'true',
		'supports' => [
			'title',
			'editor',
			'page-attributes', // Atributo para agregar el campo 'Orden' a nuestro CPT.
		],
		'show_ui'           => true,
		'show_in_menu'      => true,
		'show_in_rest'      => true,
	];

	register_post_type( 'charla', $args );
}
add_action( 'init', 'crear_custom_post_type_charlas' );

Luego podremos especificar un número para el alterar el orden en que mostramos nuestros posts:

Por último tendremos que hacer un pequeño cambio en la consulta de base de datos (con la acción pre_get_post) por defecto para que coja este nuevo valor «Orden»:

<?php
function ordenar_charlas_por_menu_order( $query ) {

	if(
		$query->is_main_query()
		&& ! is_admin()
		&& is_post_type_archive( 'charla' ) ):

		$query->set( 'orderby', 'menu_order' );
		$query->set( 'order', 'DESC' ); // Podemos modificar el orden del listado [ASC ó DESC]

	endif;

}
add_action( 'pre_get_posts', 'ordenar_charlas_por_menu_order' );

Podemos ver en la imagen anterior como se ha alterado efectivamente el orden de los posts del tipo «Charla».

Pros:

  • No se necesita ningún plugin.
  • Mantenemos la fecha de publicación intacta.

⚠️ No tan contras:

  • Requiere un mínimo de programación (no lo consideraría tan negativo este punto).

Contras:

  • Sigue siendo algo engorroso para el usuario en el caso que quiera modificar el orden de muchos posts.

Con el plugin Simple Custom Post Order

Por supuesto que existen opciones ya empaquetadas que nos facilitan implementar esta funcionalidad a golpes de click.

Os voy a recomendar el plugin Simple Custom Post Order que nos permite seleccionar el Custom Post Type que queremos ordenar (como así también taxonomías) y luego con un simple drag & drop (arrastrar elementos) en el listado de posts podemos modificar fácilmente el orden de los mismos.

Configuración del plugin

Para configurar el plugin debemos seguir los siguientes pasos:

  1. Ir al menú a Ajustes > SPCOrder.
  2. Seleccionar los tipos de posts que queremos ordenar manualmente.
  3. Guardar los cambios cliqueando en el botón «Update».

En nuestro ejemplo vamos a seleccionar el Custom Post Type «Charlas» que venimos desarrollando a lo largo del artículo.

Ordenar las charlas con el plugin

Una vez seleccionado el tipo de post que queremos ordenar debemos seguir los siguientes pasos:

  1. Ir al listado de «Charlas» (o el tipo de post que tengáis en vuestros proyectos).
  2. Arrastrar y soltar los posts en el orden deseado.
  3. Al soltar los items el orden se guardan automáticamente.

Por supuesto que con este plugin no hace falta ningún tipo de código extra. Automáticamente aplica todo el código necesario para ordenarlo en forma automática.

Pros:

  • Muy simple de utilizar para el usuario final.

⚠️ No tan contras:

  • Agregar una nueva columna a la tabla ‘wp_terms’. No es algo muy negativo pero hay personas que prefieren mantener la estructura de la base de datos intacta.
  • Por supuesto que agrega más carga de recursos al cargar nuevos javascripts en el backend.

Como podéis ver hay varias opciones a la hora de permitir modificar el orden de los posts ¿Se te ocurre alguna otra técnica? déjame tu idea en los comentarios.

Happy coding ❤️!


¿Qué te pareció el artículo?
No molaPobreMolaMuy bueno¡Excelente! (2 votos, promedio: 5,00 de 5)
Cargando…
Mauricio Gelves
Mauricio Gelves es Lic. en Informática y trabaja como Consultor Web Freelance con su marca personal MauGelves. Se especializó en WordPress para ofrecer soluciones personalizadas y rentables a medianas y largas empresas. Es Nómade Digital desde el año 2015, actividad que combina sus dos principales pasiones: la informática y los viajes, y refleja sus experiencias a través de sus hobbies audiovisuales en Instagram y YouTube.
10 Pasos para ser Freelance - eBook Gratuito

10 pasos para convertirte en Freelance

Descarga en forma totalmente gratuita mi eBook en donde explico los 10 pasos que he dado para convertirme en Freelance.

Ingresa tu email y recibe en tu bandeja de correo el enlace para descargarte el eBook.

(Te doy mi palabra que solo enviaré un email al mes con todas mis novedades)


One thought on “Cómo cambiar el orden de tus posts de WordPress”

Deja un comentario

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

× ¿Puedo ayudarte?