Как вывести ВСЕ страницы в панели управления?
Я хочу найти способ вывести список всех страниц без разбивки на страницы (пагинации), и сделать это таким образом, чтобы настройки не сбрасывались при обновлении WordPress, то есть с помощью хука.
Страница находится в панели администратора:
Когда все страницы будут выведены в список, я смогу использовать JavaScript для создания сворачиваемых/разворачиваемых подстраниц. Меня не беспокоит время загрузки страницы или что-то подобное, просто этот метод не может работать, если используется пагинация - все страницы должны быть выведены на одной странице.
Поскольку я хочу сделать это в административной области, я даже не уверен, возможно ли это реализовать так, чтобы функционал не ломался при обновлении.
Если в этом списке слишком много страниц, возможно, у вас возникнут проблемы.
Вы, вероятно, уже знаете, что это можно настроить в Настройках экрана на странице http://example.com/wp-admin/edit.php?post_type=page
.
Если вы попытаетесь установить там очень большое значение, появится это предупреждение, и система не примет его:
Но следующий код навсегда устанавливает это значение в 2000.
У меня нет больше 999 страниц, чтобы проверить, будет ли преодолен лимит, о котором предупреждает WordPress, но значение 2000 появляется после обновления страницы и сохраняется, даже если вы попытаетесь его уменьшить.
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;
}

Вы можете создать новый шаблон страницы, и в этом шаблоне разместить:
<?php wp_list_pages( 'depth=-1' ); ?>
Это выведет список всех страниц без отступов в алфавитном порядке.
(Справка: wp_list_pages)

Извините, кажется, я совсем забыл упомянуть главное - я хочу сделать это в админ-панели, поэтому не уверен, не сломаю ли я будущие обновления
