Mostrar el widget de archivo de WordPress por años

20 de enero de 2020

WordPress proporciona una pequeña cantidad de widgets que podemos usar directamente en los sidebar de nuestra web. Algunos son configurables desde el panel de administración, pero hay algunas opciones que pueden estar algo más ocultas. Como es el caso de algunas que se esconden en el código del widget de archivo.

De serie, este widget categoriza posts por meses. Pero ¿qué ocurre si prefieres agruparlos por años?

Después de buscar durante un rato por Internet y encontrar algunas soluciones más o menos engorrosas, me di cuenta de que podría existir algún hook en el widget que permitiese modificar parámetros del mismo. Al menos, no me parecía una idea descabellada.

Navega hasta el directorio de widgets /wp-includes/widgets, y abre el fichero class-wp-widget-archives.php. A continuación busca «apply_filters» para encontrar rápidamente los filtros que puedes aplicar. También puedes buscar «do_action» para encontrar los action hooks disponibles.

Para conseguir que el archivo se muestre anualmente en lugar de mensual, usa el filtro ‘widget_archive_args’. Añade el siguiente fragmento de código en el fichero functions.php de tu tema.

add_filter('widget_archives_args', function() { return array( 'type' => 'yearly', // Por años 'show_post_count' => 1, // Mostrará el número de entradas ); }, 10, 1);
Lenguaje del código: PHP (php)