web-dev-qa-db-fra.com

Comment lister TOUTES les pages dans le tableau de bord?

Je souhaite trouver un moyen d’avoir toutes les pages répertoriées sans pagination et de le faire avec une méthode qui ne sera pas écrasée lors de la mise à jour de WordPress, c’est-à-dire sous la forme d’un hook.

La page est dans l'administration:
all pages

Avec toutes les pages répertoriées, je peux ensuite utiliser javascript pour réduire/afficher les sous-pages. être répertorié sur 1 page.

Comme je veux faire cela dans la zone d'administration, je ne suis même pas sûr que cela soit faisable sans interruption lors de la mise à jour.

5
dakine

Si cette liste contient trop de pages, vous rencontrerez peut-être des problèmes.

Vous savez probablement déjà que cela peut être défini dans le Screen Options de la page http://example.com/wp-admin/edit.php?post_type=page.

Si vous essayez de définir une valeur très élevée, cet avertissement apparaît et le système ne l'accepte pas:

1500 pages

Mais ce qui suit définit en permanence cette valeur sur 2000.
Je n'ai pas plus de 999 pages à tester pour vérifier si la limite sur laquelle WordPress met en garde sera annulée ou non, mais le code 2k s'affiche après l'actualisation de la page et reste inchangé si vous essayez de la réduire.

add_filter( 'get_user_metadata', 'pages_per_page_wpse_23503', 10, 4 );
function pages_per_page_wpse_23503( $check, $object_id, $meta_key, $single )
{ 
    if( 'edit_page_per_page' == $meta_key )
        return 2000;

    return $check;
}
9
brasofilo

Vous pouvez créer un nouveau modèle de page , et dans ce modèle, mettez:

<?php wp_list_pages( 'depth=-1' ); ?> 

Cela listera toutes les pages sans indentation dans l'ordre alphabétique.

(Référence: wp_list_pages )

2
GavinR