Sortieren Sie die Tags nach der Tag-ID im Admin-Panel

Ich möchte Tags nach Tag-ID in meinem WordPress Admin-Panel sortieren. Es gibt 1000s-Tag in Admin-Tag-Liste und ich möchte wissen, welche die zuletzt hinzugefügten Tags sind, aber es gibt Optionen zum Sortieren mit Name, Beschreibung, Slug und Coun aber keine Option zum Sortieren nach ältesten oder neuesten. Bitte sagen Sie mir, wie ich eine weitere Spalte “Sortierung nach ID” hinzufügen kann.

Solutions Collecting From Web of "Sortieren Sie die Tags nach der Tag-ID im Admin-Panel"

Verwende orderby=id

Sie können die Tags einfach nach term_id mit der folgenden GET-Anfrage sortieren:

 /wp-admin/edit-tags.php?taxonomy=post_tag&orderby=id&order=desc 

und ähnlich für andere Taxonomien.

Warum funktioniert das?

Der orderby Parameter wird gelesen:

 if ( !empty( $_REQUEST['orderby'] ) ) $args['orderby'] = trim( wp_unslash( $_REQUEST['orderby'] ) ); 

in der WP_Terms_List_Table class und als Eingabeargument in:

 get_terms( $taxonomy, $args ) 

WP_Terms_List_Table::display_rows_or_placeholder() wird in der WP_Terms_List_Table::display_rows_or_placeholder() -Methode platziert.

So wird das Argument get_terms() in get_terms() :

 $_orderby = strtolower( $args['orderby'] ); if ( 'count' == $_orderby ) { $orderby = 'tt.count'; } elseif ( 'name' == $_orderby ) { $orderby = 't.name'; } elseif ( 'slug' == $_orderby ) { $orderby = 't.slug'; } elseif ( 'include' == $_orderby && ! empty( $args['include'] ) ) { $include = implode( ',', array_map( 'absint', $args['include'] ) ); $orderby = "FIELD( t.term_id, $include )"; } elseif ( 'term_group' == $_orderby ) { $orderby = 't.term_group'; } elseif ( 'description' == $_orderby ) { $orderby = 'tt.description'; } elseif ( 'none' == $_orderby ) { $orderby = ''; } elseif ( empty($_orderby) || 'id' == $_orderby ) { $orderby = 't.term_id'; } else { $orderby = 't.name'; } 

wo wir bemerken, dass der Fall mit 'id' von t.term_id angeordnet wird, was wir wollten.

Kleines Puzzle

Sie könnten jetzt denken, dass die Verwendung einer leeren orderby GET-Parameter die gleiche Reihenfolge wie 'id' wegen dieser Zeile geben wird:

 } elseif ( empty($_orderby) || 'id' == $_orderby ) { 

Das ist bei der GET-Anfrage nicht der Fall. Der Grund ist diese Bedingung (oben erwähnt):

 if ( !empty( $_REQUEST['orderby'] ) ) $args['orderby'] = trim( wp_unslash( $_REQUEST['orderby'] ) ); 

Es wird die leere orderby aus dem Argument-Array entfernen und die Standard-Reihenfolge in get_terms() wird stattdessen verwendet, dh die Sortierung nach name .