WordPress: Spalte „Zuletzt geändert“ in Seiten, Beiträgen und CPTs anzeigen

Standardmäßig zeigt WordPress in der Listenansicht von Seiten, Beiträgen und Custom Post Types nur das Veröffentlichungsdatum an. Wer regelmäßig Inhalte pflegt, möchte oft auf einen Blick sehen, wann ein Beitrag zuletzt geändert wurde.

Mit dem folgenden Snippet ergänzt du eine zusätzliche Spalte „Zuletzt geändert“. Die Spalte ist außerdem sortierbar und funktioniert automatisch für alle öffentlichen Post Types.

Funktionen

  • Zeigt das Änderungsdatum in der Listenansicht an
  • Funktioniert für Seiten, Beiträge und alle öffentlichen CPTs
  • Spalte ist per Klick sortierbar
  • Keine Plugins erforderlich

Code: Spalte „Zuletzt geändert“ hinzufügen

/**
 * Spalte "Zuletzt geändert" für alle Post Types
 */
function ih2_add_modified_column($columns) {
    $columns['modified'] = 'Zuletzt geändert';
    return $columns;
}

function ih2_show_modified_column($column, $post_id) {
    if ($column === 'modified') {
        echo get_the_modified_date('d.m.Y H:i', $post_id);
    }
}

function ih2_make_modified_sortable($columns) {
    $columns['modified'] = 'modified';
    return $columns;
}

/**
 * Auf alle öffentlichen Post Types anwenden
 */
add_action('init', function() {

    $post_types = get_post_types([
        'public' => true
    ], 'names');

    foreach ($post_types as $post_type) {

        add_filter("manage_{$post_type}_posts_columns", 'ih2_add_modified_column');

        add_action(
            "manage_{$post_type}_posts_custom_column",
            'ih2_show_modified_column',
            10,
            2
        );

        add_filter(
            "manage_edit-{$post_type}_sortable_columns",
            'ih2_make_modified_sortable'
        );
    }
});

/**
 * Sortierung aktivieren
 */
function ih2_modified_orderby($query) {

    if (
        !is_admin() ||
        !$query->is_main_query()
    ) {
        return;
    }

    if ($query->get('orderby') === 'modified') {
        $query->set('orderby', 'modified');
    }
}

add_action('pre_get_posts', 'ih2_modified_orderby');

Optional: Filter nach Änderungsmonat

Wer viele Inhalte verwaltet, kann zusätzlich einen Filter oberhalb der Listenansicht einbauen. Damit lassen sich Beiträge nach dem Monat der letzten Änderung filtern.

add_action('restrict_manage_posts', function() {

    global $typenow;

    if (!$typenow) {
        return;
    }

    $selected = $_GET['modified_month'] ?? '';

    echo '<select name="modified_month">';
    echo '<option value="">Alle Änderungsdaten</option>';

    global $wpdb;

    $months = $wpdb->get_results("
        SELECT DISTINCT
            YEAR(post_modified) AS year,
            MONTH(post_modified) AS month
        FROM {$wpdb->posts}
        WHERE post_type = '{$typenow}'
        ORDER BY post_modified DESC
    ");

    foreach ($months as $m) {

        $value = sprintf('%04d%02d', $m->year, $m->month);

        printf(
            '<option value="%s" %s>%02d/%04d</option>',
            esc_attr($value),
            selected($selected, $value, false),
            $m->month,
            $m->year
        );
    }

    echo '</select>';
});

add_action('pre_get_posts', function($query) {

    if (
        !is_admin() ||
        !$query->is_main_query() ||
        empty($_GET['modified_month'])
    ) {
        return;
    }

    $month = sanitize_text_field($_GET['modified_month']);

    $query->set('date_query', [
        [
            'year'     => substr($month, 0, 4),
            'monthnum' => substr($month, 4, 2),
            'column'   => 'post_modified'
        ]
    ]);
});

Einbau

  • Code in die functions.php des Child-Themes einfügen
  • Alternativ über das Plugin „Code Snippets“ verwalten
  • Nach dem Speichern erscheint die neue Spalte automatisch in allen öffentlichen Post Types

Hinweis

Wer bereits Admin Columns Pro einsetzt, kann die Spalte inklusive Sortierung und Filtern auch direkt über die Plugin-Oberfläche anlegen. Für die meisten Projekte reicht das oben gezeigte Snippet jedoch vollkommen aus und verursacht keine zusätzliche Plugin-Abhängigkeit.