Я использую фреймворк в моей теме 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;
У кого-нибудь есть идея, почему это не сработает? Также есть ли способ показать такие ошибки / предупреждения?
Ведущий разработчик Redux здесь. Вам нужно вызвать конфигурацию Redux ПЕРЕД тем, как вы загрузите этот код. Если вы не можете этого сделать, то вам нужно выполнить get_option (‘opt_name’), чтобы получить значения.
Спорим, вы обнаружите, что $ us_options пуст, потому что он еще не был создан. 😉
Хорошо, мне нужно было вызвать глобальную переменную внутри функции enqueue скриптов.
попробуйте это в 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 ) );
каждый раз, когда я хочу что-то из вариантов редукса? (Так как вариант ответа будет пустым согласно вашему ответу)