Redux Wordpress Framework排队风格

时间:2014-12-24 00:21:17

标签: php wordpress redux-framework

我在wordpress主题中使用了redux框架。

我的全局变量是$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 个答案:

答案 0 :(得分:1)

Redux的领导开发者。您需要在加载此代码之前调用Redux配置。如果你不能这样做,那么你必须做一个get_option('opt_name')来获取值。

基本上我打赌你会发现$ us_options是空的,因为它尚未创建。 ;)

答案 1 :(得分:0)

好的我需要在脚本排队函数中调用全局变量。

答案 2 :(得分:0)

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

答案 3 :(得分:0)

你可以试试这样的事情

$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字段的ID。

根据问题,$redux_options['ua-enable-responsive']

您需要编写一个用于排队ike

的函数
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 ) );

每次我想要来自redux选项的东西? (因为根据你的答案,redux选项将为空)