как исправить опцию cmb2 панели - PullRequest
0 голосов
/ 02 июня 2019

Я написал фрагмент кода ниже, и у меня возникли проблемы с выбором мультимедийного файла внутри перо лихорадки;при нажатии на него никаких действий не произойдет.

<?php
/**
 * This snippet has been updated to reflect the official supporting of options pages by CMB2
 * in version 2.2.5.
 *
 * If you are using the old version of the options-page registration,
 * it is recommended you swtich to this method.
 */
add_action( 'cmb2_admin_init', 'm_register_theme_options_metabox' );
/**
 * Hook in and register a metabox to handle a theme options page and adds a menu item.
 */
function m_register_theme_options_metabox() {
    /**
     * Registers options page menu item and form.
     */
    $args = array(
        'id'           => 'm_option_metabox',
        'title'        => esc_html__( 'تنظیمات قالب', 'm' ),
        'object_types' => array( 'options-page' ),
        /*
         * The following parameters are specific to the options-page box
         * Several of these parameters are passed along to add_menu_page()/add_submenu_page().
         */
        'option_key'      => 'm_options', // The option key and admin menu page slug.
        'tab_group'    => 'm_options',
        'tab_title'    => 'سربرگ',
        // 'icon_url'        => 'dashicons-palmtree', // Menu icon. Only applicable if 'parent_slug' is left empty.
        // 'menu_title'      => esc_html__( 'Options', 'm' ), // Falls back to 'title' (above).
        // 'parent_slug'     => 'themes.php', // Make options page a submenu item of the themes menu.
        // 'capability'      => 'manage_options', // Cap required to view options-page.
        // 'position'        => 1, // Menu position. Only applicable if 'parent_slug' is left empty.
        // 'admin_menu_hook' => 'network_admin_menu', // 'network_admin_menu' to add network-level options page.
        // 'display_cb'      => false, // Override the options-page form output (CMB2_Hookup::options_page_output()).
        // 'save_button'     => esc_html__( 'Save Theme Options', 'm' ), // The text for the options-page save button. Defaults to 'Save'.
    ) ;
    $header_options = new_cmb2_box( $args );
    /*
     * Options fields ids only need
     * to be unique within this box.
     * Prefix is not needed.
     */
    $header_options->add_field( array(
    'name' => 'شخصی سازی لوگو سایت',
    'type' => 'title',
    'id'   => 'custom_header_title'
) );
    $group_header = $header_options->add_field( array(
    'id'          => 'custom_header',
    'type'        => 'group',
    'description' => __( 'شما می توانید از این قسمت لوگویی برای سایت خود انتخاب نمایید', 'cmb2' ),
    'repeatable'  => false, // use false if you want non-repeatable group
    'options'     => array(
        'group_title'   => __( 'شخصی سازی لوگوی', 'cmb2' )
        ),
) );
    $header_options->add_group_field( $group_header, array(
    'name'    => 'پیام خوش امد گویی ',
    'default' => 'به هانزا خوش امدید',
    'id'      => 'm_welcome_text',
    'type'    => 'text',
    ) );
    $header_options->add_group_field( $group_header, array(
    'name'    => 'متن سبد خرید',
    'default' => 'سبد خرید',
    'id'      => 'm_basket_text',
    'type'    => 'text',
    ) );
    $header_options->add_group_field( $group_header, array(
    'name'    => 'لینک سبد خرید',
    'id'      => 'm_basket_link',
    'type'    => 'text',
    ) );
    $header_options->add_group_field( $group_header, array(
    'name'    => 'شماره تلفن',
    'default' => '+989388386156',
    'id'      => 'phone_number_text',
    'type'    => 'text',
) );
    $header_options->add_group_field( $group_header, array(
    'name'    => 'لوگو سایت',
    'desc'    => 'لطفا یک لوگو برای سایت خود انتخاب نمایید',
    'id'      => 'm_logo',
    'type'    => 'file',
    // Optional:
    'options' => array(
        'url' => true, // Hide the text input for the url
    ),
    'text'    => array(
        'add_upload_file_text' => 'انتخاب فایل' // Change upload button text. Default: "Add or Upload File"
    ),
    // query_args are passed to wp.media's library query.
    'query_args' => array(
         'type' => array(
            'image/gif',
            'image/jpeg',
            'image/png',
         ),
    ),
    'preview_size' => 'thumbnail', // Image size to use when previewing in the admin.
) );
    $header_options->add_group_field( $group_header, array(
    'name'    => 'تخفیف ویژه سبد خرید',
    'id'      => 'm_basket_offer_img',
    'type'    => 'file',
    // Optional:
    'options' => array(
        'url' => true, // Hide the text input for the url
    ),
    'text'    => array(
        'add_upload_file_text' => 'انتخاب فایل' // Change upload button text. Default: "Add or Upload File"
    ),
    // query_args are passed to wp.media's library query.
    'query_args' => array(
         'type' => array(
            'image/gif',
            'image/jpeg',
            'image/png',
         ),
    ),
    'preview_size' => 'thumbnail', // Image size to use when previewing in the admin.
) );
    $header_options->add_group_field( $group_header, array(
    'name'    => 'لینک تخفیف ویژه',
    'id'      => 'm_basket_offer_link',
    'type'    => 'text',
    ) );
    $args = array(
        'id'           => 'm_sidebar_option_metabox',
        'menu_title'   => 'سایدبار', // Use menu title, & not title to hide main h2.
        'object_types' => array( 'options-page' ),
        'option_key'   => 'm_sidebar_option_metabox',
        'parent_slug'  => 'm_options',
        'tab_group'    => 'm_options',
        'tab_title'    => 'سایدبار',
    );
$m_sidebar_options = new_cmb2_box( $args );

    $m_sidebar_options->add_field( array(
    'name' => 'شخصی سازی سایدبار سایت',
    'type' => 'title',
    'id'   => 'custom_social_slider'
) );
    $group_social_slider = $m_sidebar_options->add_field( array(
    'id'          => 'm_social_slider',
    'type'        => 'group',
    'repeatable'  => true, // use false if you want non-repeatable group
    'options'     => array(
        'group_title'   => __( 'انتخاب عکس {#} اسلایدر', 'cmb2' ),
        'add_button'    => __( 'Add Another Entry', 'cmb2' ),
        'remove_button' => __( 'Remove Entry', 'cmb2' ),
        'sortable'      => true, // beta
        ),
) );
    $m_sidebar_options->add_group_field( $group_social_slider, array(
    'name'    => 'عکس شبکه مجازی سایدبار',
    'desc'    => 'انتخاب عکس شبکه مجازی',
    'id'      => 'sidebar_social_img',
    'type'    => 'file',
    // Optional:
    'options' => array(
        'url' => true, // Hide the text input for the url
    ),
    'text'    => array(
        'add_upload_file_text' => 'انتخاب فایل' // Change upload button text. Default: "Add or Upload File"
    ),
    // query_args are passed to wp.media's library query.
    'query_args' => array(
         'type' => array(
            'image/gif',
            'image/jpeg',
            'image/png',
         ),
    ),
    'preview_size' => 'thumbnail', // Image size to use when previewing in the admin.
) );
    $m_sidebar_options->add_group_field( $group_social_slider, array(
    'name'    => 'متن جایگزین عکس',
    'id'      => 'sidebar_social_img_alt',
    'type'    => 'text',
) );
    $m_sidebar_options->add_group_field( $group_social_slider, array(
    'name'    => 'ادرس شبکه اجتماعی',
    'id'      => 'sidebar_social_img_link',
    'type'    => 'text_url',
) );
    $args = array(
        'id'           => 'm_f_slider_option_metabox',
        'menu_title'   => 'اسلایدر بالا', // Use menu title, & not title to hide main h2.
        'object_types' => array( 'options-page' ),
        'option_key'   => 'm_f_slider_option_metabox',
        'parent_slug'  => 'm_options',
        'tab_group'    => 'm_options',
        'tab_title'    => 'اسلایدر بالا',
    );
$m_f_slider_options = new_cmb2_box( $args );
    $m_f_slider_options->add_field( array(
    'name' => 'شخصی سازی اسلایدر بالا',
    'type' => 'title',
    'id'   => 'customize_first_slider'
) );
    $group_slider = $m_f_slider_options->add_field( array(
    'id'          => 'm_slider',
    'type'        => 'group',
    'description' => __( 'شما می توانید از این قسمت اسلایدر سایت خود را مدیریت کنید.', 'cmb2' ),
    'repeatable'  => true, // use false if you want non-repeatable group
    'options'     => array(
        'group_title'   => __( 'انتخاب عکس {#} اسلایدر', 'cmb2' ),
        'add_button'    => __( 'Add Another Entry', 'cmb2' ),
        'remove_button' => __( 'Remove Entry', 'cmb2' ),
        'sortable'      => true, // beta
        ),
) );
    $m_f_slider_options->add_group_field( $group_slider, array(
    'name'    => 'عکس اسلایدر',
    'desc'    => 'انتخاب عکس اسلایدر',
    'id'      => 'slider_img',
    'type'    => 'file',
    // Optional:
    'options' => array(
        'url' => true, // Hide the text input for the url
    ),
    'text'    => array(
        'add_upload_file_text' => 'انتخاب فایل' // Change upload button text. Default: "Add or Upload File"
    ),
    // query_args are passed to wp.media's library query.
    'query_args' => array(
         'type' => array(
            'image/gif',
            'image/jpeg',
            'image/png',
         ),
    ),
    'preview_size' => 'thumbnail', // Image size to use when previewing in the admin.
) );
    $m_f_slider_options->add_group_field( $group_slider, array(
    'name'    => 'متن مورد نظر برای اسلایدر',
    'id'      => 'slider_title',
    'type'    => 'text',
) );
    $m_f_slider_options->add_group_field( $group_slider, array(
    'name' => __( 'لینک اسلایدر', 'cmb2' ),
    'id'   => 'slider_url',
    'type' => 'text_url',
    // 'protocols' => array( 'http', 'https', 'ftp', 'ftps', 'mailto', 'news', 'irc', 'gopher', 'nntp', 'feed', 'telnet' ), // Array of allowed protocols
) );
$args = array(
        'id'           => 'm_content_option_metabox',
        'menu_title'   => 'مطالب سایت', // Use menu title, & not title to hide main h2.
        'object_types' => array( 'options-page' ),
        'option_key'   => 'm_content_option_metabox',
        'parent_slug'  => 'm_options',
        'tab_group'    => 'm_options',
        'tab_title'    => 'مطالب سایت',
    );
$m_content_options = new_cmb2_box( $args );
    $m_content_options->add_field( array(
    'name' => 'شخصی سازی مطالب هانزا',
    'type' => 'title',
    'id'   => 'customize_content'
) );
    $group_customize_m_content = $m_content_options->add_field( array(
    'id'          => 'm_content',
    'type'        => 'group',
    'description' => __( 'شما می توانید از این قسمت مطالب سایت خود را مدیریت کنید.', 'cmb2' ),
    'repeatable'  => true, // use false if you want non-repeatable group
    'options'     => array(
        'group_title'   => __( 'مطلب شماره {#}', 'cmb2' ),
        'add_button'    => __( 'اضافه کردن', 'cmb2' ),
        'remove_button' => __( 'حذف کردن', 'cmb2' ),
        'sortable'      => true, // beta
        ),
) );
    $m_content_options->add_group_field( $group_customize_m_content, array(
    'name'    => 'متن مورد نظر برای مطلب',
    'id'      => 'content-title',
    'type'    => 'text',
) );
    $m_content_options->add_group_field( $group_customize_m_content, array(
    'name'    => 'تنظیمات سربرگ',
    'id'      => 'content_make_',
    'type'    => 'wysiwyg',
    'options' => array(),
    ) );
    $m_content_options->add_group_field( $group_customize_m_content, array(
    'name'             => 'انتخاب اندازه',
    'id'               => 'content-size',
    'type'             => 'select',
    'show_option_none' => true,
    'default'          => 'col-md-3',
    'options'          => array(
        'col-md-1' => __( 'col-md-1', 'cmb2' ),
        'col-md-2' => __( 'col-md-2', 'cmb2' ),
        'col-md-3' => __( 'col-md-3', 'cmb2' ),
        'col-md-4' => __( 'col-md-4', 'cmb2' ),
        'col-md-5' => __( 'col-md-5', 'cmb2' ),
        'col-md-6' => __( 'col-md-6', 'cmb2' ),
        'col-md-7' => __( 'col-md-7', 'cmb2' ),
        'col-md-8' => __( 'col-md-8', 'cmb2' ),
        'col-md-9' => __( 'col-md-9', 'cmb2' ),
        'col-md-10' => __( 'col-md-10', 'cmb2' ),
        'col-md-11' => __( 'col-md-11', 'cmb2' ),
        'col-md-12' => __( 'col-md-12', 'cmb2' ),
    ),
) );
    $args = array(
        'id'           => 'm_s_slider_option_metabox',
        'menu_title'   => 'اسلایدر پایین', // Use menu title, & not title to hide main h2.
        'object_types' => array( 'options-page' ),
        'option_key'   => 'm_s_slider_option_metabox',
        'parent_slug'  => 'm_options',
        'tab_group'    => 'm_options',
        'tab_title'    => 'اسلایدر پایین',
    );
$m_s_slider_options = new_cmb2_box( $args );
    $m_s_slider_options->add_field( array(
    'name' => 'شخصی سازی اسلایدر سایت',
    'type' => 'title',
    'id'   => 'm_sidebat_title_2'
) );
    $group_slider_2 = $m_s_slider_options->add_field( array(
    'id'          => 'm_slider_2',
    'type'        => 'group',
    'description' => __( 'شما می توانید از این قسمت اسلایدر سایت خود را مدیریت کنید.', 'cmb2' ),
    'repeatable'  => true, // use false if you want non-repeatable group
    'options'     => array(
        'group_title'   => __( 'انتخاب عکس {#} اسلایدر', 'cmb2' ),
        'add_button'    => __( 'Add Another Entry', 'cmb2' ),
        'remove_button' => __( 'Remove Entry', 'cmb2' ),
        'sortable'      => true, // beta
        ),
) );
    $m_s_slider_options->add_group_field( $group_slider_2, array(
    'name'    => 'عکس اسلایدر',
    'desc'    => 'انتخاب عکس اسلایدر',
    'id'      => 'slider_img_2',
    'type'    => 'file',
    // Optional:
    'options' => array(
        'url' => true, // Hide the text input for the url
    ),
    'text'    => array(
        'add_upload_file_text' => 'انتخاب فایل' // Change upload button text. Default: "Add or Upload File"
    ),
    // query_args are passed to wp.media's library query.
    'query_args' => array(
         'type' => array(
            'image/gif',
            'image/jpeg',
            'image/png',
         ),
    ),
    'preview_size' => 'thumbnail', // Image size to use when previewing in the admin.
) );
    $m_s_slider_options->add_group_field( $group_slider_2, array(
    'name'    => 'متن مورد نظر برای اسلایدر',
    'id'      => 'slider_title_2',
    'type'    => 'text',
) );
    $m_s_slider_options->add_group_field( $group_slider_2, array(
    'name' => __( 'لینک اسلایدر', 'cmb2' ),
    'id'   => 'slider_url_2',
    'type' => 'text_url',
    // 'protocols' => array( 'http', 'https', 'ftp', 'ftps', 'mailto', 'news', 'irc', 'gopher', 'nntp', 'feed', 'telnet' ), // Array of allowed protocols
) );
    $args = array(
        'id'           => 'm_footer_option_metabox',
        'menu_title'   => 'فوتر', // Use menu title, & not title to hide main h2.
        'object_types' => array( 'options-page' ),
        'option_key'   => 'm_footer_option_metabox',
        'parent_slug'  => 'm_options',
        'tab_group'    => 'm_options',
        'tab_title'    => 'فوتر',
    );
$m_footer_options = new_cmb2_box( $args );
    $m_footer_options->add_field( array(
    'name' => 'شخصی سازی فوتر سایت',
    'type' => 'title',
    'id'   => 'm_sfooter_title'
) );
    $group_sfooter = $m_footer_options->add_field( array(
    'id'          => 'm_sfooter',
    'type'        => 'group',
    'description' => __( 'شما می توانید از این قسمت فوتر سایت خود را مدیریت کنید.', 'cmb2' ),
    'repeatable'  => false, // use false if you want non-repeatable group
) );
    $m_footer_options->add_group_field( $group_sfooter, array(
    'name'    => 'فوتر',
    'id'      => 'sfooter-content',
    'type'    => 'wysiwyg',
    'options' => array(),
) );
    $m_footer_options->add_group_field( $group_sfooter, array(
    'name'    => 'نماد اعتماد',
    'id'      => 'sfooter-namad',
    'type'    => 'wysiwyg',
    'options' => array(),
) );
    $group_footer = $m_footer_options->add_field( array(
    'id'          => 'm_footer',
    'type'        => 'group',
    'description' => __( 'شما می توانید از این قسمت فوتر سایت خود را مدیریت کنید.', 'cmb2' ),
    'repeatable'  => false, // use false if you want non-repeatable group
    'options'     => array(
        'group_title'   => __( 'شخصی سازی فوتر', 'cmb2' ),
        ),
) );
    $m_footer_options->add_group_field( $group_footer, array(
    'name' => 'متن کپی رایت فوتر',
    'default' => 'تمامی حقوق مادی و معنوی مطالب و طراحی های این سایت برای سایت کدپز محفوظ می باشد.',
    'id' => 'copyright',
    'type' => 'textarea_small'
) );
    $m_footer_options->add_group_field( $group_footer, array(
    'name' => __( 'تلگرام', 'cmb2' ),
    'id'   => 'social-telegram',
    'type' => 'text_url',
) );
    $m_footer_options->add_group_field( $group_footer, array(
    'name' => __( 'فیس بوک', 'cmb2' ),
    'id'   => 'social-facebook',
    'type' => 'text_url',
) );
    $m_footer_options->add_group_field( $group_footer, array(
    'name' => __( 'تویتر', 'cmb2' ),
    'id'   => 'social-twitter',
    'type' => 'text_url',
) );
    $m_footer_options->add_group_field( $group_footer, array(
    'name' => __( 'گوگل پلاس', 'cmb2' ),
    'id'   => 'social-google-plus',
    'type' => 'text_url',
) );
    $m_footer_options->add_group_field( $group_footer, array(
    'name' => __( 'اینستاگرام', 'cmb2' ),
    'id'   => 'social-instagram',
    'type' => 'text_url',
) );
    $args = array(
        'id'           => 'm_color_bg_option_metabox',
        'menu_title'   => 'پس زمینه و رنگ ها', // Use menu title, & not title to hide main h2.
        'object_types' => array( 'options-page' ),
        'option_key'   => 'm_color_bg_option_metabox',
        'parent_slug'  => 'm_options',
        'tab_group'    => 'm_options',
        'tab_title'    => 'پس زمینه و رنگ ها',
    );
$m_bg_color_options = new_cmb2_box( $args );
    $m_bg_color_options->add_field( array(
    'name' => 'شخصی سازی پس زمینه سایت',
    'type' => 'title',
    'id'   => 'customize_colors'
) );
    $group_customize = $m_bg_color_options->add_field( array(
    'id'          => 'background',
    'type'        => 'group',
    'description' => __( 'شما می توانید از این قسمت پس زمینه ای برای سایت خود انتخاب نمایید', 'cmb2' ),
    'repeatable'  => false, // use false if you want non-repeatable group
    'options'     => array(
        'group_title'   => __( 'شخصی سازی پس زمینه ی سایت', 'cmb2' )
        ),
) );
    $m_bg_color_options->add_group_field( $group_customize, array(
    'name'    => 'عکس پس زمینه',
    'desc'    => 'لطفا یک عکس برای پس زمینه سایت خود انتخاب نمایید',
    'id'      => 'bg-header',
    'type'    => 'file',
    // Optional:
    'options' => array(
        'url' => true, // Hide the text input for the url
    ),
    'text'    => array(
        'add_upload_file_text' => 'انتخاب فایل' // Change upload button text. Default: "Add or Upload File"
    ),
    // query_args are passed to wp.media's library query.
    'query_args' => array(
         'type' => array(
            'image/gif',
            'image/jpeg',
            'image/png',
         ),
    ),
    'preview_size' => 'thumbnail', // Image size to use when previewing in the admin.
) );
    $m_bg_color_options->add_group_field( $group_customize, array(
    'name'    => 'رنگ پس زمینه',
    'id'      => 'bg-color',
    'type'    => 'colorpicker',
    'default' => '#e2e3e4',
     'options' => array(
        'alpha' => true, // Make this a rgba color picker.
     ),
) );
    $m_bg_color_options->add_group_field( $group_customize, array(
    'name'    => 'پس زمینه هدر',
    'id'      => 'header_bg_color',
    'type'    => 'colorpicker',
    'default' => '#322c22',
     'options' => array(
        'alpha' => true, // Make this a rgba color picker.
     ),
) );
    $m_bg_color_options->add_group_field( $group_customize, array(
    'name'    => 'پس زمینه منو',
    'id'      => 'nav-bg-color',
    'type'    => 'colorpicker',
    'default' => '#322c22',
     'options' => array(
        'alpha' => true, // Make this a rgba color picker.
     ),
) );
    $m_bg_color_options->add_group_field( $group_customize, array(
    'name'    => 'پس زمینه رنگ دکمه ها',
    'id'      => 'btn-bg-color',
    'type'    => 'colorpicker',
    'default' => '#ffe430',
     'options' => array(
        'alpha' => true, // Make this a rgba color picker.
     ),
) );
    $m_bg_color_options->add_group_field( $group_customize, array(
    'name'    => 'پس زمینه رنگ دکمه ها',
    'id'      => 'btn-bgg-color',
    'type'    => 'colorpicker',
    'default' => '#231f20',

     'options' => array(
        'alpha' => true, // Make this a rgba color picker.
     ),
) );
    $m_bg_color_options->add_group_field( $group_customize, array(
    'name'    => 'سربرگ مطالب',
    'id'      => 'content-bg-color',
    'type'    => 'colorpicker',
    'default' => '#0ea6b6',
     'options' => array(
        'alpha' => true, // Make this a rgba color picker.
     ),
) );
    $m_bg_color_options->add_group_field( $group_customize, array(
    'name'    => 'رنگ نوشته سربرگ مطالب',
    'id'      => 'content-text-color',
    'type'    => 'colorpicker',
    'default' => '#ffffff',
     'options' => array(
        'alpha' => true, // Make this a rgba color picker.
     ),
) );
}
/**
 * Wrapper function around cmb2_get_option
 * @since  0.1.0
 * @param  string $key     Options array key
 * @param  mixed  $default Optional default value
 * @return mixed           Option value
 */
function m_get_option( $key = '',$id_name, $default = false ) {
    if ( function_exists( 'cmb2_get_option' ) ) {
        // Use cmb2_get_option as it passes through some key filters.
        return cmb2_get_option( $id_name, $key, $default );
    }
    // Fallback to get_option if CMB2 is not loaded yet.
    $opts = get_option( $id_name, $default );
    $val = $default;
    if ( 'all' == $key ) {
        $val = $opts;
    } elseif ( is_array( $opts ) && array_key_exists( $key, $opts ) && false !== $opts[ $key ] ) {
        $val = $opts[ $key ];
    }
    return $val;
}

В приведенном выше коде я сделал настройки и разместил их в разных разделах, сначала весь код был разделен на одну страницу, и он этого не сделал.иметь хороший эффект.

После разборки я впервые столкнулся с проблемой загрузки кода в основном формате, которая разрешилась.Затем я столкнулся с проблемой не загружать мультимедийные файлы на вкладки, кроме основной вкладки.

...