Content Marketing

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:

columna de fecha de modificación de publicaciones de wordpress 1

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');
  1. mtz_custom_columns funció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 $columns que representa las columnas existentes.
  • Crea una nueva matriz $new_columns para 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".
  1. add_filter('manage_edit-post_columns', 'mtz_custom_columns'):
  • Esta línea engancha el mtz_custom_columns funció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);
  1. mtz_custom_column_content funció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_field y lo almacena en el $post_modified variable.
  • 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>).
  1. add_action('manage_post_posts_custom_column', 'mtz_custom_column_content', 10, 2):
  • Esta línea engancha el mtz_custom_column_content funció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');
  1. mtz_custom_sortable_columns funció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.
  1. add_filter('manage_edit-post_sortable_columns', 'mtz_custom_sortable_columns'):
  • Esta línea engancha el mtz_custom_sortable_columns funció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.

Artículos Relacionados

Volver al botón superior
Cerrar

Adblock detectado

Dependemos de anuncios y patrocinios para mantenernos Martech Zone Gratis. Considere desactivar su bloqueador de anuncios o apóyenos con una membresía anual asequible y sin publicidad (US$10):

Regístrese para obtener una membresía anual