it-swarm.asia

ضبط خيارات شاشة المسؤول الافتراضية وترتيب Metabox

أنا أبحث بشدة عن طريقة ما (بأي طريقة) لتعيين "خيارات الشاشة" الافتراضية وترتيب قاعدة التعريف من خلال ملف jobs.php. هل لدى أي شخص أي مساعدة يمكنه تقديمها هنا؟

28
NetConstructor.com

تحديد ترتيب مربعات التعريف في صفحات تحرير النشر

ستحتاج إلى إزالة مربعات التعريف وإضافتها مرة أخرى بالترتيب الذي تريده.

لتعطيل مربعات التعريف: (تخصيص حسب احتياجاتك ، انظر إلى معرّف metabox في رمز 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. على سبيل المثال: مع مقتطف الشفرة التالي ، سيكون مربع تعريف التعليقات قبل مربع meta للحقول المخصصة.

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

تحديد النتائج الافتراضية ليتم عرضها على صفحة قائمة المنشورات

استخدم الفلاتر 'edit _ {$ 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' ); للصفحات.

  • أو استخدام شرط داخل وظيفتك. على سبيل المثال:

    وظيفة 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