Установить параметры экрана администратора по умолчанию и порядок метабоксов
28
Я отчаянно ищу какой-либо способ (любой способ) установить "параметры экрана" по умолчанию и порядок метабокса через файл functions.php. Кто-нибудь может помочь здесь?
Обновление 2014 года: для тех, кому просто нужно изменить порядок мета-блоков, см . Ответ Набила ниже .
Риного
Ответы:
23
Установка порядка мета-полей на страницах редактирования сообщений
Вам нужно будет удалить мета-блоки и добавить их снова в нужном вам порядке.
Чтобы отключить мета-блоки: (настройте в соответствии с вашими потребностями, посмотрите на идентификатор метабокса в HTML-коде, чтобы узнать, какое имя вы должны использовать в качестве первого параметра функций)
function my_remove_meta_boxes(){
remove_meta_box('postcustom','post','core');
remove_meta_box('commentsdiv','post','core');...}
add_action('admin_menu','my_remove_meta_boxes');
После их удаления вы можете использовать функцию add_meta_box, чтобы добавить их на новые позиции: http://codex.wordpress.org/Function_Reference/add_meta_box . Порядок мета-блоков зависит от порядка, в котором вы вызываете функцию add_meta_box. Например: со следующим фрагментом кода мета-поле комментариев будет находиться перед мета-блоком пользовательских полей.
Извините, может я не правильно объяснил. Я имел в виду мета-блоки на странице редактирования сообщений в области администратора, а также указывал количество сообщений по умолчанию, отображаемых на странице списка сообщений администратора.
NetConstructor.com
1
так что технически это не вопрос, это действительно 2 вопроса?
Том Дж. Новелл
Я изменил свой ответ. Дайте мне знать, если вам нужно больше деталей.
sorich87
@ sorich87 спасибо за ваш ответ, однако из того, что я помню, не было никакого способа указать точный порядок каждого метабокса или он был там? Может быть, я должен быть более конкретным. Я в основном ищу различные фрагменты кода, которые позволяют мне предварительно установить различные параметры для всех пользователей без необходимости входа в каждую учетную запись. Примеры: установка точного порядка мета-блоков на страницах редактирования сообщений, установка заголовка столбцов, отображаемых на странице списка сообщений, установка результатов по умолчанию, которые будут отображаться на странице списка сообщений ... и тому подобное. Заранее спасибо.
NetConstructor.com
Я изменил свой ответ.
sorich87
9
В следующем примере, замените {CPT}с именем поста типа, как post, page, book, event, imaginary, foobar... Так что если у вас есть тип записи с именем event, вам нужно будет добавить фильтр для get_user_option_meta-box-order_event.
add_filter('get_user_option_meta-box-order_{CPT}','metabox_order');function metabox_order( $order ){return array('normal'=> join(",",
array(// vvv Arrange here as you desire'customdiv-{CPT}','authordiv','slugdiv',)),);}
Заметки:
Наряду с normal, вы также можете иметь sideиadvanced
Значения разделены запятыми, их можно получить, просмотрев исходный код страницы, или угадать
Любой существующий метабокс, не включенный в ваш заказ, будет автоматически добавлен в конец вашего списка.
Я был несколько смущен {CPT}номенклатурой; чтобы уточнить, если у вас есть тип сообщения с именем event, вам нужно будет добавить фильтр для get_user_option_meta-box-order_event.
Ответы:
Установка порядка мета-полей на страницах редактирования сообщений
Вам нужно будет удалить мета-блоки и добавить их снова в нужном вам порядке.
Чтобы отключить мета-блоки: (настройте в соответствии с вашими потребностями, посмотрите на идентификатор метабокса в HTML-коде, чтобы узнать, какое имя вы должны использовать в качестве первого параметра функций)
После их удаления вы можете использовать функцию add_meta_box, чтобы добавить их на новые позиции: http://codex.wordpress.org/Function_Reference/add_meta_box . Порядок мета-блоков зависит от порядка, в котором вы вызываете функцию add_meta_box. Например: со следующим фрагментом кода мета-поле комментариев будет находиться перед мета-блоком пользовательских полей.
Вы можете посмотреть файл wp-admin / edit-form-advanced.php
Настройка заголовка столбцов, отображаемых на странице списка сообщений
Вам необходимо использовать фильтр управления _ {$ post_type} _posts_columns. Например: следующий фрагмент удалит столбец комментариев.
Настройка результатов по умолчанию для отображения на странице списка сообщений
Используйте фильтры 'edit _ {$ post_type} _per_page' и 'edit_posts_per_page'.
Чтобы настроить таргетинг на конкретный тип сообщения:
используйте,
add_filter( 'edit_{post type}_per_page', 'my_edit_post_per_page' );
например,add_filter( 'edit_post_per_page', 'my_edit_post_per_page' );
для сообщений,add_filter( 'edit_page_per_page', 'my_edit_post_per_page' );
для страниц.или используйте условие в вашей функции. например:
function my_edit_post_per_page ($ per_page, $ post_type) {
источник
В следующем примере, замените
{CPT}
с именем поста типа, какpost
,page
,book
,event
,imaginary
,foobar
... Так что если у вас есть тип записи с именемevent
, вам нужно будет добавить фильтр дляget_user_option_meta-box-order_event
.Заметки:
normal
, вы также можете иметьside
иadvanced
источник
{CPT}
номенклатурой; чтобы уточнить, если у вас есть тип сообщения с именемevent
, вам нужно будет добавить фильтр дляget_user_option_meta-box-order_event
.