web-dev-qa-db-fra.com

Supprimer la pagination dans l'apparence -> Menus -> Catégories

existe-t-il un moyen de supprimer la pagination dans l'éditeur de menu Wordpress?

J'ai quelque chose comme 200 catégories dans mon blog et la personnalisation des menus semble être délicate lorsque vous devez cliquer dessus pour trouver la catégorie souhaitée.

Je sais qu'il existe un plugin qui "supprime" la pagination pour PAGES mais je n'ai rien trouvé pour supprimer la pagination pour les CATÉGORIES.

 enter image description here 

3
mad2kx

Selon Stackoverflow Stackoverflow

Ok, après avoir lu le code source, j’ai constaté que le nombre de catégories renvoyées dans la section du menu Edition est codé en dur à 50, ligne 613 de\wp-admin\includes\nav-menu.php

// 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;

Afin de remplacer la valeur par défaut de 50 par page, vous pouvez définir le nombre sur '' pour indiquer à la requête de renvoyer toutes les catégories. Ajoutez le code suivant à votre fichier functions.php.

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;
    }

Si vous définissez le nombre à blanc, la pagination reste affichée même si toutes les catégories sont affichées.

Il existe également un filtre appelé terms_clauses dans lequel vous pouvez supprimer la clause SQL LIMIT de la requête, mais cela ne semble pas avoir d'incidence sur la requête.

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