it-swarm.asia

Varsayılan Yönetici Ekranı seçeneklerini ve Metabox Siparişini Ayarla

Umutsuzca varsayılan "ekran seçenekleri" ve metabox sıralamasını işlev.php dosyası aracılığıyla ayarlamak için bir yol (herhangi bir şekilde) arıyorum. Burada sağlayabilecekleri yardımı olan var mı?

28

Yazı düzenleme sayfalarındaki meta kutuların sırasını ayarlama

Meta kutuları kaldırmanız ve tekrar istediğiniz sırayla eklemeniz gerekir.

Meta kutuları devre dışı bırakmak için: (ihtiyaçlarınıza göre özelleştirin, işlevlerin ilk parametresi olarak hangi adı kullanmanız gerektiğini bilmek için html kodundaki meta kutu kimliğine bakın)

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' );

Bunları çıkardıktan sonra, yeni konumlara eklemek için add_meta_box işlevini kullanabilirsiniz: http://codex.wordpress.org/Function_Reference/add_meta_box . Meta kutularının sırası, add_meta_box işlevini çağırdığınız sıraya bağlıdır. E.g .: aşağıdaki kod parçacığında, yorumlar meta kutusu özel alanlar meta kutusundan önce olacaktır.

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 dosyasına bakmak isteyebilirsiniz.

Gönderi listesi sayfasında hangi sütun başlığının gösterileceğinin ayarlanması

_ ~ $ Post_type} _posts_columns süzgecini yönet kullanmanız gerekir. E.g .: aşağıdaki kod parçası yorum sütununu kaldıracak.

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

    return $posts_columns;
}

add_filter( 'manage_post_posts_columns', 'my_remove_columns' );

Posta listesi sayfasında gösterilecek varsayılan sonuçların ayarlanması

'Edit _ {$ post_type} _per_page' ve 'edit_posts_per_page' filtrelerini kullanın.

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' );

Belirli bir yayın türünü hedeflemek için:

  • add_filter( 'edit_{post type}_per_page', 'my_edit_post_per_page' ); kullanın örneğin; mesajlar için add_filter( 'edit_post_per_page', 'my_edit_post_per_page' );, sayfalar için add_filter( 'edit_page_per_page', 'my_edit_post_per_page' );.

  • veya fonksiyonunuzda bir koşul kullanın. Örneğin.:

    işlevi 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;
    
23
sorich87

Aşağıdaki örnekte, {CPT} yerine post, page, book, event, imaginary, foobar.. gibi post tipiyle değiştirin. Yani event adında bir post tipi varsa, get_user_option_meta-box-order_event için bir filtre eklemeniz gerekir.

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',
            )
        ),
    );
}

Notlar:

  • normal ile birlikte, side ve advanced öğelerine de sahip olabilirsiniz.
  • Değerler virgülle ayrılmış div kimlikleridir, sayfa kaynak kodunu görüntüleyerek yakalayabilir veya tahmin edebilirsiniz.
  • Özel siparişinizde bulunmayan metabox, listenizin sonuna otomatik olarak eklenecektir.
9
Nabil Kadimi