webentwicklung-frage-antwort-db.com.de

Entfernen Sie die Paginierung im Erscheinungsbild -> Menüs -> Kategorien

gibt es eine Möglichkeit, die Paginierung im WordPress-Menü-Editor zu entfernen?

Ich habe ungefähr 200 Kategorien in meinem Blog und das Anpassen von Menüs scheint schwierig zu sein, wenn Sie darauf klicken müssen, um die gewünschte Kategorie zu finden.

Ich weiß, dass es ein Plugin gibt, das die Paginierung für SEITEN "entfernt", aber ich konnte nichts finden, um die Paginierung für die KATEGORIEN zu entfernen.

 enter image description here 

3
mad2kx

Nach Stackoverflow Stackoverflow

Ok, nachdem ich den Quellcode gelesen hatte, stellte ich fest, dass die Anzahl der Kategorien, die im Abschnitt zum Bearbeiten des Menüs zurückgegeben wurden, in Zeile 613 von\wp-admin\includes\nav-menu.php auf 50 fest codiert ist

// Paginate browsing for large numbers of objects.
    $per_page = 50;
    $pagenum = isset( $_REQUEST[$taxonomy_name . '-tab'] ) && isset( $_REQUEST['paged'] ) ? absint( $_REQUEST['paged'] ) : 1;
    $offset = 0 < $pagenum ? $per_page * ( $pagenum - 1 ) : 0;

Um den Standardwert von 50 pro Seite zu überschreiben, können Sie die Zahl auf "" setzen, um die Abfrage anzuweisen, alle Kategorien zurückzugeben. Fügen Sie der Datei functions.php den folgenden Code hinzu.

add_filter( 'get_terms_args', 'show_all_categories_admin_nav_menu', 10, 2);

    function show_all_categories_admin_nav_menu( $args, $taxonomies ) {
        if( reset($taxonomies) === 'category' ) {
            $args['number'] = '';
        }

        return $args;
    }

Wenn Sie die Zahl auf leer setzen, wird die Paginierung weiterhin angezeigt, obwohl alle Kategorien angezeigt werden.

Es gibt auch einen Filter mit dem Namen terms_clauses, mit dem Sie die SQL LIMIT-Klausel aus der Abfrage entfernen können. Dies schien jedoch keine Auswirkungen auf die Abfrage zu haben.

add_filter('terms_clauses', 'modify_terms_clauses', 10, 3);

function modify_terms_clauses( $clauses, $taxonomies, $args ) {
    if( reset($taxonomies) === 'category' ) {
        $clauses['limits'] = '';
    }

    return $clauses;
}
2
mad2kx