Redux Wordpress Framework в стиле enqueue

Я использую фреймворк в моей теме WordPress.

Моя глобальная переменная $ua_options

Итак, я создал переключатель в моем config.php:

array(
   'id'       => 'ua-enable-responsive',
   'type'     => 'switch',
   'title'    => __( 'Responsive', 'redux-framework-demo' ),
   'compiler' => 'true',
   'mode'     => false,
),

В моем functions.php Я хочу поставить файл в очередь условно:

if ($ua_options['ua-enable-responsive']) {
    wp_enqueue_style( 'mytheme-bootstrap', get_template_directory_uri() . '/css/bootstrap.css'      );
}
else {
    wp_enqueue_style( 'mytheme-non-responsive', get_template_directory_uri() . '/css/no-responsive.css' );      
}

Но это не похоже на работу. Второй файл no-responsive.css загружается всегда, независимо от того, включаю ли я переключатель на бэкэнде.

Я также назвал глобальную переменную в верхней части моего functions.php

global $ua_options;

У кого-нибудь есть идея, почему это не сработает? Также есть ли способ показать такие ошибки / предупреждения?

4 ответа

Решение

Ведущий разработчик Redux здесь. Вам нужно вызвать конфигурацию Redux ПЕРЕД тем, как вы загрузите этот код. Если вы не можете этого сделать, вам нужно выполнить get_option('opt_name'), чтобы получить значения.

Спорим, вы обнаружите, что $us_options пуст, потому что он еще не был создан.;)

Попробуйте это в header.php . также исправить это

    if ($ua_options['ua-enable-responsive'] == '1') {
// '1' true and '0' false .
        wp_enqueue_style( 'mytheme-bootstrap', get_template_directory_uri() . '/css/bootstrap.css'      );
    }
    else {
        wp_enqueue_style( 'mytheme-non-responsive', get_template_directory_uri() . '/css/no-responsive.css' );      
    }

Хорошо, мне нужно было вызвать глобальную переменную внутри функции сценариев скриптов.

Вы можете попробовать что-то вроде этого

$redux_options = maybe_unserialize( get_option( 'xyz_redux', false ) );

if( $redux_options['custom-js'] ) {
  add_action('wp_enqueue_scripts', 'load_custom_js');
}

куда xyz_redux это имя глобальной переменной опции Redux, это также имя опции в базе данных.

$redux_options['custom-js'] это идентификатор поля избыточности.

По вопросу это будет $redux_options['ua-enable-responsive']

Вам нужно будет написать функцию для постановки в очередь Айк

function load_custom_js() {
  wp_register_script('custom-js', 'path/to/js', array(), '1.0', true );
  wp_enqueue_script('custom_js');
}

У меня есть вопрос к ведущему разработчику, разве это не трата ресурсов? Я имею в виду, мне нужно будет позвонить

$redux_options = maybe_unserialize( get_option( 'xyz_redux', false ) );

каждый раз, когда я хочу что-то из вариантов редукса? (Так как вариант ответа будет пустым согласно вашему ответу)

Другие вопросы по тегам