плагин metabox wordpress - rmwb_meta ('field_id') возвращает пустое значение - PullRequest
0 голосов
/ 05 апреля 2020

Я использую плагин metabox для WordPress, и у меня странная проблема с плагином и его расширением: страница настроек. Я создаю простую страницу с вкладкой, включающей только поле выбора. Я использую класс для создания экземпляра всего компонента и его места непосредственно в моей теме, это не плагин. Поле выбора позволяет вернуть простую строку (имя шрифта). Моя проблема в том, что когда я выполняю команду rmwb_meta ('field_id'), она возвращает пустое значение.

<?php

class FontSettings {

    /**
     * Add actions and filter.
     *
     * @author PL
     */
    public function __construct() {
        add_action('init_root_style', array($this, 'init_font'));
        add_filter('mb_settings_pages', array($this, 'register_global_settings_page'));
        add_filter('rwmb_meta_boxes',  array($this, 'register_global_meta_boxes'));
    }



    /**
     * Add new meta boxes for the settings admin page
     *
     * @author PL
     */
    public function register_global_meta_boxes($meta_boxes) {
        $meta_boxes[] = array(
            'id'                => 'font-select',
            'title'             => __( 'Typography' ),
            'settings_pages'    => 'theme-settings',
            'tab'               => 'typography',
            'fields' => array(
                array(
                    'name'          => __( 'Font variable' ),
                    'id'            => 'font-variable',
                    'type'          => 'select',
                    'desc'          => __( 'Select the font of theme' ),
                    'placeholder'   => __( 'Select a font to use' ),
                    'options'       => array(
                        'noko'   => 'Noko sans JP',
                        'hind'   => 'Hind',
                        'open'   => 'Open sans',
                        'lato'   => 'Lato',
                        'nunito' => 'Nunito'
                    ),
                ),
            ),
        );
        return $meta_boxes;
    }



    /**
     * Add the new tab 'theme settings' in admin menu
     *
     * @author PL
     */
    public function register_global_settings_page($settings_pages) {
        $settings_pages[] = [
            'id'          => 'theme-settings',
            'option_name' => 'theme_settings',
            'menu_title'  => 'Theme settings',
            'icon_url'    => 'dashicons-admin-generic',
            'style'       => 'no-boxes',
            'columns'     => 1,
            'tab_style'   => 'left',
            'tabs'        => array(
                'typography' => 'typography',
            ),
        ];
        return $settings_pages;
    }

    /**
     * return the choosed one font
     *
     * @author PL
     * @created : 2020-03-31
     */
    public function init_font() {
        $font-data = rwmb_meta('font-variable'); <-- $font-data is empty
        echo($font-data);
    }
}
$lugiaSettings = new LugiaSettings();



//////////////////////////////////////////////////
In wordpress page.php I call my fonction like so:

<?php do_action('init_font', null); ?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...