Как вывести ВСЕ страницы в панели управления?

20 июл. 2011 г., 06:35:52
Просмотры: 21K
Голосов: 5

Я хочу найти способ вывести список всех страниц без разбивки на страницы (пагинации), и сделать это таким образом, чтобы настройки не сбрасывались при обновлении WordPress, то есть с помощью хука.

Страница находится в панели администратора:
список всех страниц в админ-панели WordPress

Когда все страницы будут выведены в список, я смогу использовать JavaScript для создания сворачиваемых/разворачиваемых подстраниц. Меня не беспокоит время загрузки страницы или что-то подобное, просто этот метод не может работать, если используется пагинация - все страницы должны быть выведены на одной странице.

Поскольку я хочу сделать это в административной области, я даже не уверен, возможно ли это реализовать так, чтобы функционал не ломался при обновлении.

2
Комментарии

Мне очень интересно, какой метод вы используете для раскрытия/сворачивания подстраниц на стандартном экране wp-admin/edit.php?post_type=page. Это вообще возможно? Я не вижу полезных классов или ID в разметке...

brasofilo brasofilo
9 янв. 2013 г. 04:11:25

Подстраницы можно определить по символу "-" в начале названия страницы, двойные дефисы для под-подстраниц и так далее.

dakine dakine
9 янв. 2013 г. 21:06:19
Все ответы на вопрос 2
1

Если в этом списке слишком много страниц, возможно, у вас возникнут проблемы.

Вы, вероятно, уже знаете, что это можно настроить в Настройках экрана на странице http://example.com/wp-admin/edit.php?post_type=page.

Если вы попытаетесь установить там очень большое значение, появится это предупреждение, и система не примет его:

1500 страниц

Но следующий код навсегда устанавливает это значение в 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;
}
9 янв. 2013 г. 04:02:56
Комментарии

Я думал, что это будет намного сложнее, но да, опция "Экранные настройки" помогла. Думаю, это место всегда должно быть первым, куда я смотрю — примерно как проверять, есть ли бензин в неработающем двигателе, прежде чем копаться в нем глубже. ;)

Mark Mark
26 мар. 2015 г. 22:13:14
2

Вы можете создать новый шаблон страницы, и в этом шаблоне разместить:

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

Это выведет список всех страниц без отступов в алфавитном порядке.

(Справка: wp_list_pages)

20 июл. 2011 г. 06:41:40
Комментарии

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

dakine dakine
21 июл. 2011 г. 07:03:39

Вы все еще можете сделать то, что предложил Гэвин. Просто разместите вызов wp_list_pages внутри callback-функции для страницы настроек или там, где вам нужно.

chrisguitarguy chrisguitarguy
21 авг. 2011 г. 16:18:26