我一直在尝试使用两种不同的样式表来创建亮/暗模式之间的切换,这两种样式表都是在functions.php文件中注册的,如下所示:
function theme_register_styles() {
wp_register_style( 'first-stylesheet', get_template_directory_uri() . '/css/style.min.css' );
wp_register_style( 'second-stylesheet', get_template_directory_uri() . '/css/style_light.min.css' );
wp_enqueue_style('first-stylesheet');
global $wp_styles;
}
我一直试图用这个代码实现它,但它不工作.
button.addEventListener('click', function() {
if (wp.styles.registered[stylesheets.first].queue) {
wp.styles.registered[stylesheets.first].dequeue();
wp.styles.registered[stylesheets.second].enqueue();
}
else {
wp.styles.registered[stylesheets.second].dequeue();
wp.styles.registered[stylesheets.first].enqueue();
}
});
我哪里做错了?🤔
1条答案
按热度按时间z31licg01#
为了将不同的CSS文件加入队列,你需要触发页面重加载。从前端触发页面重加载和与WordPress后端通信的方法有限(例如REST API, AJAX ,表单提交)。
最好的选择可能是将亮模式和暗模式都加入队列,但如果您需要这样做,一个选择是使用查询字符串强制页面重载,然后使用它们来确定亮/暗模式。
PHP语言
JS/HTML语言