Установка параметров экрана администратора по умолчанию и amp; Заказ Metabox

Я отчаянно искал какой-либо способ (по-любому) установить «параметры экрана» по умолчанию и порядок обмена через файл functions.php. может ли кто-нибудь помочь им здесь?

27 голосов | спросил NetConstructor.com 6 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowMon, 06 Sep 2010 03:44:19 +0400 2010, 03:44:19

2 ответа


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. Например: со следующим фрагментом кода, метатет комментариев будет перед метаполе настраиваемых полей.

function my_add_meta_boxes( $post_type, $post ) {
    if ( ('publish' == $post->post_status || 'private' == $post->post_status) && post_type_supports($post_type, 'comments') )
        add_meta_box('commentsdiv', __('Comments'), 'post_comment_meta_box', $post_type, 'normal', 'core');

    if ( post_type_supports($post_type, 'custom-fields') )
        add_meta_box('postcustom', __('Custom Fields'), 'post_custom_meta_box', $post_type, 'normal', 'core');

    ...
}

add_action( 'add_meta_boxes', 'my_add_meta_boxes' );

Вы можете посмотреть файл wp-admin /edit-form-advanced.php

Настройка названия столбцов на странице списка сообщений

Вам нужно использовать управление фильтрами _ {$ post_type} _posts_columns. Например: следующий фрагмент удалит столбец комментариев.

function my_remove_columns( $posts_columns ) {
    unset( $posts_columns['comments'] );

    return $posts_columns;
}

add_filter( 'manage_post_posts_columns', 'my_remove_columns' );

Настройка результатов по умолчанию, которые будут отображаться на странице списка сообщений

Используйте настройки фильтров _ {$ post_type} _per_page 'и' edit_posts_per_page '.

function my_edit_post_per_page( $per_page, $post_type ) {

    $edit_per_page = 'edit_' . $post_type . '_per_page';
    $per_page = (int) get_user_option( $edit_per_page );
    if ( empty( $per_page ) || $per_page < 1 )
        $per_page = 1;

    return $per_page;
}

add_filter( 'edit_posts_per_page', 'my_edit_post_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) {

    if( $post_type == 'post' ) {
        $edit_per_page = 'edit_' . $post_type . '_per_page';
        $per_page = (int) get_user_option( $edit_per_page );
        if ( empty( $per_page ) || $per_page < 1 )
            $per_page = 1;
    }
    
    
    return $per_page;
    
ответил sorich87 6 thEurope/Moscowp30Europe/Moscow09bEurope/MoscowMon, 06 Sep 2010 12:02:57 +0400 2010, 12:02:57
8

В следующем примере замените {CPT} на имя типа сообщения, например post, page, book code>, 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
  • Значения разделены запятыми div ids, вы можете захватить, просмотрев исходный код страницы, или вы можете предположить
  • Любой обменный код, который существует, не входит в ваш заказ, будет добавлен автоматически в конце вашего списка.
ответил Nabil Kadimi 29 PM000000120000001431 2014, 12:32:14

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132