Wie ändere ich die Reihenfolge der Beiträge in Admin?

8

Wie kann ich die Reihenfolge der Beiträge im Admin-Dashboard ändern, damit sie alphabetisch nach Titel und nicht zuerst nach dem neuesten angezeigt werden?

urok93
quelle

Antworten:

16

Wenn Sie nicht immer auf die Spalte "Titel" klicken möchten, um Ihre Beiträge nach Titel zu sortieren, können Sie diesen Code entweder in die functions.phpDatei Ihres derzeit aktiven WordPress-Themas oder in ein Plugin einfügen . Dadurch werden Ihre Beiträge automatisch immer für Sie sortiert, sodass Sie nicht jedes Mal auf die Titelspalte klicken müssen.

Sie können dies verwenden, um die Standardsortierreihenfolge für Beitragstypen festzulegen.

/* Sort posts in wp_list_table by column in ascending or descending order. */
function custom_post_order($query){
    /* 
        Set post types.
        _builtin => true returns WordPress default post types. 
        _builtin => false returns custom registered post types. 
    */
    $post_types = get_post_types(array('_builtin' => true), 'names');
    /* The current post type. */
    $post_type = $query->get('post_type');
    /* Check post types. */
    if(in_array($post_type, $post_types)){
        /* Post Column: e.g. title */
        if($query->get('orderby') == ''){
            $query->set('orderby', 'title');
        }
        /* Post Order: ASC / DESC */
        if($query->get('order') == ''){
            $query->set('order', 'ASC');
        }
    }
}
if(is_admin()){
    add_action('pre_get_posts', 'custom_post_order');
}

Sie können einige dieser Beispielbedingungen verwenden ...

/* Effects all post types in the array. */
if(in_array($post_type, $post_types)){

}

/* Effects only a specific post type in the array of post types. */
if(in_array($post_type, $post_types) && $post_type == 'your_post_type_name'){

}

/* Effects all post types in the array of post types, except a specific post type. */
if(in_array($post_type, $post_types) && $post_type != 'your_post_type_name'){

}

Wenn Sie diese Sortierung auf ALLE Beitragstypen anwenden möchten, unabhängig davon, ob sie "integriert" sind oder nicht ...

Ändere das: $post_types = get_post_types(array('_builtin' => true), 'names');

Dazu: $post_types = get_post_types('', 'names');

Michael Ecklund
quelle
Ist es in Ordnung, innerhalb der Funktion zu verwenden, anstatt vor der Aktion zu überprüfenif ( ! is_admin ) { return; }
urok93
Ich nehme an, du könntest das tun.
Michael Ecklund
Sie müssen eine "return $ query" hinzufügen. vor Funktionsende, sonst funktioniert dies in späteren WordPress-Editionen nicht.
Jobst
Ich denke, ein Plugin führt diese Funktion aus und überschreibt meine benutzerdefinierte Funktion. Gibt es einen Hook, der sicherstellt, dass mein Code ausgeführt wird und nicht die Plugins?
Thomas_Hoadley
7

Ah, klicken Sie auf dieses kleine Titel-Ding, um die alphabetische Sortierung umzuschalten ...

Geben Sie hier die Bildbeschreibung ein

markratledge
quelle
-1

Sie können der Adresse jederzeit hinzufügen:

/edit.php?post_type=properties&orderby=date&order=desc

Vortex-On
quelle
Warum das post_typehier benutzerdefiniert ist, geben Sie OP eine generische Antwort. Wir können den Titel in der Reihenfolge bestellen, indem wir auf die Spalte Titel klicken
bravokeyl