我在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;
有人知道为什么这行不通吗?还有没有办法显示此类错误/警告?
Redux 的首席开发人员。在加载此代码之前,您需要调用 Redux 配置。如果你不能做到这一点,那么你必须做一个get_option('opt_name')来获取值。
基本上,我敢打赌你会发现$us_options是空的,因为它还没有被创建。 ;)
好的,
我需要在脚本排队函数中调用全局变量。
在标题中尝试此操作.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 字段的 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 选项将为空)