• Saltar a la navegación principal
  • Saltar al contenido principal
  • Saltar a la barra lateral principal

DecodeCMS

Tu WordPress a otro Nivel ...

  • Acerca de
  • Contacto
  • Inicio
  • Tutoriales
    • Themes
    • Plugins
    • Core
    • Recursos
  • Cursos
  • Acceder
    • Mis cursos
    • Mi Cuenta
    • Acceder
Inicio / Tutoriales / Core / Ordenar alfabéticamente el contenido de WordPress

Ordenar alfabéticamente el contenido de WordPress

Ordenar alfabéticamente el contenido de WordPress

[ 15 abril 2020 ] [ Autor: Jhon Marreros Guzmán ][ Core - Intermedio] [ ]

mejoras

¿Me ayudas a llegar a más gente?

Twittear Compartir LinkedIn WhatsApp

WordPress por defecto ordena las entradas y otros tipos de contenido (custom post type) de acuerdo a la fecha de creación y de manera descendente, sin embargo puedes cambiar el orden por defecto y ordenar tu contenido alfabéticamente a través de código.

 

Resultado Final

Lo que al final obtendrás será algo similar a lo que se muestra en la siguiente imagen:

Resultado final ordenamiento

 

Generalidades

El código para el ordenamiento se basa en cambiar la consulta SQL, usamos el Hook pre_get_posts el cual hace referencia a una función que toma como parámetro justamente el objeto de la consulta y al cual podemos hacer modificaciones.

El código que se muestra en los siguientes ejemplos puedes agregarlo en el archivo functions.php de tu tema hijo o puedes usar un plugin de Snippets..

 

Ordenar todas las entradas

Si quieres ordenar todas las entradas para que aparezcan en orden alfabético, ya sea en el inicio o en las categorías puedes usar el siguiente código:

add_action( 'pre_get_posts', 'dcms_order_content' );
function dcms_order_content( $query ) {
	if ( $query->is_main_query() ){
		$query->set( 'orderby', 'title' );
		$query->set( 'order', 'ASC' );
	}
	return $query;
}

 
En el código anterior la comprobación se hace siempre si es la consulta principal y no hay ninguna condición adicional.

 

Ordenar entradas de una categoría específica

Para ordenar las entradas de una categoría específica puedes usar el siguiente código.

add_action( 'pre_get_posts', 'dcms_order_content' );
function dcms_order_content( $query ) {
	if ( $query->is_main_query() && is_category('blog') ){
		$query->set( 'orderby', 'title' );
		$query->set( 'order', 'ASC' );
	}
	return $query;
}

 
En el código anterior he asumido que tienes entradas en una categoría llamada blog

 

Ordenar Custom Post Type de una categoría específica

Podemos extender el código de ordenamiento de entradas de una categoría específica para cualquier custom post type.

add_action( 'pre_get_posts', 'dcms_order_content' );
function dcms_order_content( $query ) {
	if ( $query->is_main_query() && is_category('cocina') ){
		$query->set( 'post_type', 'recetas_post_type' );
		$query->set( 'orderby', 'title' );
		$query->set( 'order', 'ASC' );
	}
	return $query;
}

 
En el código anterior he asumido que tienes un custom post type registrado con el id recetas_post_type y además que están mostrándose como parte de la categoría cocina.

Para aprender a crear Custom Posts Types puedes revisar: Usando Custom Post Types en WordPress

 

Ordenar Custom Post Type para una taxonomía específica

Si tienes una taxonomía asociada a un custom post type, simplemente puedes cambiar la condición de comprobación de categoría a taxonomía.

add_action( 'pre_get_posts', 'dcms_order_content' );
function dcms_order_content( $query ) {
	if ( $query->is_main_query() && is_tax('pais') ){
		$query->set( 'post_type', 'recetas_post_type' );
		$query->set( 'orderby', 'title' );
		$query->set( 'order', 'ASC' );
	}
	return $query;
}

 
En el código anterior he asumido que tienes un custom post type registrado con el id recetas_post_type y además que esta asociado a una taxonomía llamada pais.

Para aprender a crear nuevas Taxonomías puedes revisar: Aprende a usar Taxonomías en WordPress

 

Conclusión

Como has podido comprobar, puedes cambiar la consulta que recupera las entradas o cualquier custom post type y hacer modificaciones, en los ejemplos anteriores hemos cambiado el orden de acuerdo al título para que se muestre de forma ascendente.

 
¿Aún con dudas?, en el siguiente video se detallan los puntos anteriores.

Suscríbete a DecodeCMS:  

 

¿Me ayudas a llegar a más gente?

Twittear Compartir LinkedIn WhatsApp

Artículos Relacionados

  • Taxonomías en WordPressAprende a usar Taxonomías en WordPress
  • Custom Post Types en WordPressUsando Custom Post Types en WordPress
  • Transients en WordPressCómo usar Transients en WordPress
  • Usar imágenes WebP en WordPressUsar imágenes WebP en WordPress
Valora este artículo : 1 barra2 barras3 barras4 barras5 barras (6 votos, promedio: 4,83 de 5)
Cargando...

Interacciones con los lectores

Comentarios

  1. Dany

    5 octubre, 2020

    Hola, he estado intentando ordenar por fecha asc ciertas categorías y desc otras, con el código de entradas de una categoría específica y no me funcionó. Hice mal reemplando tittle por date?. Gracias por tus aportes son de mucha ayuda!

    • Jhon Marreros Guzmán

      7 octubre, 2020

      Hola, prueba usar ‘post_date’

  2. Cesc

    8 septiembre, 2022

    Muchísimas gracias, pero quiero ordenar un listado de Personas por el apellido. Javier Aparicio etc etc
    Como puedo indicar que ordene por la segunda palabra que aparezca en un título
    🙂 mil gracias

    • Jhon Marreros Guzmán

      11 septiembre, 2022

      Hola, si el apellido esta en un campo de la BD puedes hacerlo con una consulta SQL, sin embargo si el nombre y apellido estan en el mismo campo tendrías que realizar una conversión antes quitando el nombre, pero lo dificil aquí sería identificar el apellido ya que habrá nombres que sean sólo una palabra y otros dos. Si tienes esta necesidad lo mejor sería almacenar el apellido en un campo independiente de la BD.

  3. Enrique

    20 diciembre, 2022

    Buenas, una pregunta, quise hacerlo con apellidos, usando metacampos (advanced custom fields) y funcionó
    Pero luego al mostrar la pág me dice que no la encuentra, me ayudarian?

    • Jhon Marreros Guzmán

      24 diciembre, 2022

      Hola, el cambio de orden no debería afectar si se muestra el detalle del contenido. Prueba sin embargo guardar las urls permanentes, desde Ajustes > Enlaces permanentes.

Para escribir código envolver con: <pre class="language-xxx"><code> </code></pre> ,reemplaza las xxx (php, css, html)

*

* Gravatar habilitado

Barra lateral principal

Presentación

Curso Decodifica WordPress

Únete a DecodeCMS

Recibirás como regalo:

Guia práctica con video:
¿Quieres agregar código a WordPress? Revisa las diferentes opciones que tienes.Ver más

Jooble
Alojamiento Wordpress

Niveles

Básico Intermedio Avanzado

Etiquetas

accesibilidad css dashboard editor error funcionalidad herramientas imagen js librería mejoras optimización seguridad social woocommerce

Populares

Ajax sin usar jQuery en WordPress

Mover la carga de Javascript y CSS al footer en WordPress

Corregir error plugin desactualizado

Entradas relacionadas mejoradas sin plugins en WordPress

© logo decode pie
Política de Privacidad | Política de devoluciones
Copyrigth 2023 Todos los derechos reservados