我目前正在一个网站上工作,在那里我被要求设计活动页面的样式。EventON正在处理这些事件,我在尝试覆盖它们现有的任何样式时遇到了很多麻烦。我已经将样式添加到Wordpress管理中的“设置”>“样式”和主题的样式表中(甚至添加了!很重要,这是我最后的努力),但没有一个样式会覆盖EventON的默认样式。因此,我一直在努力尝试将他们的风格完全排除在外,从头开始设计。如果有人能在这方面帮助我,我将不胜感激!下面是我的代码,它不起作用(添加到functions.php):
I started here:
function plugin_dequeue_styles() {
wp_dequeue_style(\'eventon_dynamic_styles\');
}
add_action(\'wp_print_styles\', \'plugin_dequeue_styles\');
Then tried this:
function plugin_dequeue_styles() {
wp_dequeue_style(\'eventon_dynamic_styles\', plugin_dir_url(\'eventon_dynamic_styles.css\') );
}
add_action(\'wp_print_styles\', \'plugin_dequeue_styles\');
And then this:
function plugin_dequeue_styles() {
wp_dequeue_style(\'eventon_dynamic_styles\', plugins_url(\'/assets/css/\', \'eventon_dynamic_styles.css\') );
}
add_action(\'wp_print_styles\', \'plugin_dequeue_styles\');
我认为最后2条更为正确,但我不明白我在Wordpress Codex或其他什么东西中读到了什么。如果有人能帮助我走出困境或引导我走上正确的道路,那将是令人惊讶的。
谢谢
最合适的回答,由SO网友:nazim 整理而成
TL;DR
答案如下:
add_action( \'wp_enqueue_scripts\', function() {
wp_dequeue_style( \'evo_font_icons\');
wp_deregister_style( \'evo_font_icons\');
wp_dequeue_style( \'evcal_cal_default\');
wp_deregister_style( \'evcal_cal_default\');
wp_dequeue_style( \'evo_single_event\');
wp_deregister_style( \'evo_single_event\');
wp_dequeue_style( \'evcal_addon_styles\');
wp_deregister_style( \'evcal_addon_styles\');
wp_dequeue_style( \'evo_addon_styles\');
wp_deregister_style( \'evo_addon_styles\');
wp_dequeue_style( \'evo_fc_styles\');
wp_deregister_style( \'evo_fc_styles\');
wp_dequeue_style( \'eventon_dynamic_styles\');
wp_deregister_style( \'eventon_dynamic_styles\');
wp_dequeue_style( \'evo_TX_styles\');
wp_deregister_style( \'evo_TX_styles\');
}, 20);
Explanation
首先:eventON是一个很难覆盖样式的东西。默认样式嵌套太多,这使得重写它们效率低下,而且有问题。
尽管如此,!important
应该始终有效,否则,您在自己的样式表中没有做正确的事情。您可以检查您的样式是否通过Google开发工具加载,即使它们被eventON覆盖。
回答您的问题:
您需要使用正确的句柄将样式出列。为了获得正确的句柄,可以使用所有排队样式的简单var\\u dump()来查看正在使用哪些eventon样式及其句柄:
<?php
global $wp_styles;
var_dump( $wp_styles );
?>
基于此,我们可以如上所示修改我们的出列脚本。