LucusHost, el mejor hosting

LucusHost, el mejor hosting

Crear una columna ordenable con la fecha de modificación en las listas de contenido del panel de administración de WordPress

Publicado el 16 de julio de 2022
Actualizado el 17 de julio de 2022

Hay veces que, en los listados de los contenidos publicados en WordPress, queremos saber cuándo y por quién ha sido modificado por última vez.

Pero, por defecto, WordPress solo muestra la fecha de publicación y el autor de la misma.

Si bien se puede acceder a los datos de la última modificación en el editor de publicaciones individuales (si está habilitado), puede ser difícil saber de un vistazo qué se actualizó, cuándo y por quién.

Código para crear una columna con la fecha de modificación de un contenido

Este fragmento de código muestra una nueva columna, ordenable, con la fecha de modificación en los listados de páginas, posts, medios y cualquier tipo de contenido del panel de administración de WordPress. También muestra el nombre de usuario que hizo la última actualización.

// Registrar columna de fecha de modificación para todos los tipos de contenido
function jrb_registro_columna_modificada( $columns ) {
	$columns['Modificada'] = __( 'Modificada', 'show-modified-date-in-admin-lists' );
	return $columns;
}
add_filter( 'manage_posts_columns', 'jrb_registro_columna_modificada' );
add_filter( 'manage_pages_columns', 'jrb_registro_columna_modificada' );
add_filter( 'manage_media_columns', 'jrb_registro_columna_modificada' );

function jrb_mostrar_columna_modificada( $column_name, $post_id ) {
	switch ( $column_name ) {
	case 'Modificada':
		global $post;
	       	echo '<p>'.get_the_modified_date( $format = 'd/m/Y' ).' a las '.get_the_modified_time().'<br />';
			if ( !empty( get_the_modified_author() ) ) {
				echo '<small>' . esc_html__( 'por', 'show-modified-date-in-admin-lists' ) . ' <strong>'.get_the_modified_author().'<strong></small>';
			} else {
				echo '<small>' . esc_html__( 'por', 'show-modified-date-in-admin-lists' ) . ' <strong>' . esc_html__( 'DESCONOCIDO', 'show-modified-date-in-admin-lists' ) . '<strong></small>';
			}
			echo '</p>';
		break;
	}
}
add_action( 'manage_posts_custom_column', 'jrb_mostrar_columna_modificada', 10, 2 );
add_action( 'manage_pages_custom_column', 'jrb_mostrar_columna_modificada', 10, 2 );
add_action( 'manage_media_custom_column', 'jrb_mostrar_columna_modificada', 10, 2 );

function jrb_registro_columna_modificada_ordenable( $columns ) {
	$columns['Modificada'] = 'modificada';
	return $columns;
}

// Hacer la columna ordenable
add_filter( 'manage_edit-post_sortable_columns', 'jrb_registro_columna_modificada_ordenable' );
add_filter( 'manage_edit-page_sortable_columns', 'jrb_registro_columna_modificada_ordenable' );
add_filter( 'manage_upload_sortable_columns', 'jrb_registro_columna_modificada_ordenable' );Lenguaje del código: PHP (php)

Con la función jrb_registro_columna_modificada( $columns ) se registra la columna de fecha de última modificación del contenido.

Se crean los filtros correspondientes para publicaciones, páginas y medios. Con esto se cubre cualquier tipo de contenido.

Con la función jrb_mostrar_columna_modificada( $column_name, $post_id ) se establece el formato en el que se mostrará la información de la columna.

Al igual que con los filtros, las tres acciones establecidas sirven para todos los tipos de contenidos.

Sin embargo, a la hora de hacer ordenable la columna de fecha de modificación, tal como está el snippet solo se aplica a entradas, páginas y medios.

Si quieres hacer que la columna de fecha de modificación de tu contenido personalizado sea ordenable tienes que añadir el filtro correspondiente.

Para ello añade un filtro por cada tipo de contenido personalizado que tengas en tu sitio web, tal que así:

add_filter( 'manage_edit-TU_TIPO_DE_CONTENIDO_sortable_columns', 'jrb_registro_columna_modificada_ordenable' );Lenguaje del código: PHP (php)

Sustituyendo TU_TIPO_DE_CONTENIDO por el slug de tu CPT.

¿Dónde pongo este fragmento de código?

Hay varias formas de agregar un snippet a tu instalación de WordPress:

Si necesitas ayuda para ello, no dudes en ponerte en contacto conmigo.

Te recomiendo

Libros que me ayudan

Donde alojo mis sitios web

LucusHost, el mejor hosting

LucusHost, el mejor hosting

Sitio alojado en un servidor verde según The Green Web Foundation

LucusHost, el mejor hosting

LucusHost, el mejor hosting

Aviso legal | Condiciones de contratación | Política de privacidad | Política de cookies
© 2017-2024 · Jose R. Bernabeu ·
linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram