Экран просмотра постов переключается с просмотра списка на просмотр фрагментов в зависимости от значения параметра mode в строке запроса. Если параметр «mode» не задан, WordPress по умолчанию принимает вид списка.
К сожалению, этот параметр не фильтруется, поэтому нет простого способа контролировать его программно.
Поэтому я собираюсь сделать то, чего никогда не делаю ... Я расскажу вам, как взломать Core, чтобы сделать эту работу ...
Добавление фильтра
Откройте /wp-admin/includes/class-wp-posts-list-table.php
и найдите prepare_items()
метод (около строки 81).
В строке 99 WordPress проверяет, был ли параметр «режим» установлен в запросе, и использует его для установки глобальной $mode
переменной:
$mode = empty( $_REQUEST['mode'] ) ? 'list' : $_REQUEST['mode'];
Мы собираемся изменить эту строку, чтобы отфильтровать настройки по умолчанию. Измените эту строку на:
$mode = empty( $_REQUEST['mode'] ) ? apply_filters( 'default-posts-list-mode', 'list' ) : $_REQUEST['mode'];
Теперь перейдите в functions.php
файл вашей темы и добавьте следующий код:
add_filter( 'default-posts-list-mode', 'my_default_posts_list_mode' );
function my_default_posts_list_mode( $default ) {
return 'excerpt';
}
Это подключится к фильтру и вернет режим выписки по умолчанию.
Так как мое личное правило о взломе Core требует, чтобы все хаки были внесены обратно в проект (таким образом они могут быть перенесены в Core и больше не считаться хаком), я открыл Trac-тикет для этого улучшения и отправил код выше как патч. Пожалуйста, взвесьте тикет, чтобы он мог войти в ядро для 3.5 (мы опоздали в цикле для 3.4, но мы можем попытаться протолкнуть это для следующей версии).