WordPress: cómo agregar una columna de fecha de modificación a la vista de publicaciones y hacerla ordenable

Si usted ha sido un lector desde hace mucho tiempo de Martech Zone, probablemente hayas notado el trabajo que he estado haciendo para eliminar artículos obsoletos y actualizar artículos que son populares pero están desactualizados. Cuando trabajo dentro de mi página de publicaciones en el administrador de WordPress, filtro la vista significativamente para identificar los artículos que debo eliminar o actualizar.
Uno de los campos que necesitaba era la capacidad de ordenar la vista según la fecha de modificación. Me sorprendió que esto no fuera una opción, así que escribí el siguiente código.
Agregar fecha de modificación en publicaciones con clasificación
Este código añade un Editado columna a la lista de publicaciones de administrador de WordPress usando WordPress API, lo muestra junto a la fecha de publicación, muestra la fecha y hora de modificación en el formato deseado y hace que la columna se pueda ordenar según la fecha de modificación. Añade esto a tu functions.php archivo en su niño tema:
// Add Date Edited Column
function mtz_custom_columns($columns) {
// Create a new array to hold the reordered columns
$new_columns = array();
// Add all columns before the "Date Edited" column
foreach ($columns as $key => $value) {
$new_columns[$key] = $value;
if ($key === 'date') {
// Add the "Edited" column right after the "Published Date" column
$new_columns['date_edited'] = 'Edited';
}
}
return $new_columns;
}
add_filter('manage_edit-post_columns', 'mtz_custom_columns');
// Display Date Edited Value
function mtz_custom_column_content($column, $post_id) {
if ($column === 'date_edited') {
$post_modified = get_post_field('post_modified', $post_id);
// Format the date and time as "YYYY/MM/DD at 0:00 AM" with line breaks
$formatted_date = date_i18n('Y/m/d at g:i A', strtotime($post_modified));
echo 'Edited<br>' . $formatted_date;
}
}
add_action('manage_post_posts_custom_column', 'mtz_custom_column_content', 10, 2);
// Make Date Edited Column Sortable
function mtz_custom_sortable_columns($columns) {
$columns['date_edited'] = 'post_modified';
return $columns;
}
add_filter('manage_edit-post_sortable_columns', 'mtz_custom_sortable_columns'); Vista de publicaciones de administrador de WordPress
Y aquí está el resultado:

Explicación del código
Analicemos en detalle el código proporcionado, explicando cada parte y su propósito:
// Add Date Edited Column
function mtz_custom_columns($columns) {
// Create a new array to hold the reordered columns
$new_columns = array();
// Add all columns before the "Date Edited" column
foreach ($columns as $key => $value) {
$new_columns[$key] = $value;
if ($key === 'date') {
// Add the "Edited" column right after the "Published Date" column
$new_columns['date_edited'] = 'Edited';
}
}
return $new_columns;
}
add_filter('manage_edit-post_columns', 'mtz_custom_columns'); mtz_custom_columnsfunción:
- Esta función es responsable de agregar una nueva columna llamada "Fecha de edición" a la lista de publicaciones del administrador de WordPress.
- Recibe una matriz
$columnsque representa las columnas existentes. - Crea una nueva matriz
$new_columnspara contener las columnas reordenadas. - Itera a través de las columnas existentes y las agrega a la nueva matriz.
- Cuando encuentra la columna 'fecha' (que representa la columna "Fecha de publicación"), agrega la columna "Fecha de edición" justo después.
- Finalmente, devuelve la nueva matriz de columnas, incluida la columna "Fecha de edición".
add_filter('manage_edit-post_columns', 'mtz_custom_columns'):
- Esta línea engancha el
mtz_custom_columnsfunción al filtro 'manage_edit-post_columns'. Le dice a WordPress que ejecute la función cuando se estén administrando las columnas en la pantalla de edición posterior.
// Display Date Edited Value
function mtz_custom_column_content($column, $post_id) {
if ($column === 'date_edited') {
$post_modified = get_post_field('post_modified', $post_id);
// Format the date and time as "YYYY/MM/DD at 0:00 AM" with line breaks
$formatted_date = date_i18n('Y/m/d at g:i A', strtotime($post_modified));
echo 'Edited<br>' . $formatted_date;
}
}
add_action('manage_post_posts_custom_column', 'mtz_custom_column_content', 10, 2); mtz_custom_column_contentfunción:
- Esta función se encarga de mostrar el contenido en la columna “Fecha de edición” de cada publicación.
- Recibe dos parámetros:
$column(se muestra la columna actual) y$post_id(el ID de la publicación actual). - Comprueba si la columna actual es 'fecha_editada' (la columna "Fecha de edición").
- Si es así, recupera la fecha y hora de modificación de la publicación usando
get_post_fieldy lo almacena en el$post_modifiedvariable. - Entonces formatea la fecha y la hora como “AAAA/MM/DD a las H:MM AM” usando
date_i18n, que tiene en cuenta la configuración de fecha y hora del sitio. - Finalmente, muestra "Editado" en la primera línea y la fecha y hora formateadas en la segunda línea, separadas por un salto de línea (
<br>).
add_action('manage_post_posts_custom_column', 'mtz_custom_column_content', 10, 2):
- Esta línea engancha el
mtz_custom_column_contentfunción a la acción 'manage_post_posts_custom_column'. Especifica que la función debe ejecutarse cuando es necesario mostrar contenido personalizado en una columna de una publicación. - La función está enganchada con una prioridad de 10 y acepta 2 parámetros (la columna y el ID de la publicación).
// Make Date Edited Column Sortable
function mtz_custom_sortable_columns($columns) {
$columns['date_edited'] = 'post_modified';
return $columns;
}
add_filter('manage_edit-post_sortable_columns', 'mtz_custom_sortable_columns'); mtz_custom_sortable_columnsfunción:
- Esta función es responsable de hacer que la columna "Fecha de edición" se pueda ordenar.
- Recibe la matriz de columnas ordenables.
$columns. - Agrega 'date_edited' como una columna ordenable y la asocia con 'post_modified'.
- Finalmente, devuelve la matriz actualizada de columnas ordenables.
add_filter('manage_edit-post_sortable_columns', 'mtz_custom_sortable_columns'):
- Esta línea engancha el
mtz_custom_sortable_columnsfunción al filtro 'manage_edit-post_sortable_columns'. Le dice a WordPress que la columna "Fecha de edición" se puede ordenar según el valor 'post_modified'.
Si necesita ayuda para el desarrollo de WordPress, comuníquese con DK New Media, mi firma. Podemos ayudarlo con el desarrollo de temas personalizados, desarrollo de complementos, optimización, rendimiento y más.







