当前位置: 首页 > 知识库问答 >
问题:

用插件样式覆盖主题样式

步致远
2023-03-14

我正在编写一个自定义的WordPress插件,我正在使用带有Elementor的OceanWP主题,并且正在尝试登记/注册Bootstrap 4.5样式/脚本以及我自己的自定义样式/脚本。

然而,OceanWP的样式仍然优先使用,而不是我的样式/脚本。

目前,我正试图通过提高add_action钩子中的优先级来超越主题资产,但没有任何运气。

我正在尝试显示一个自定义的多部分表单,并使用一个短码将其显示在一个页面上。

public function __construct()
        {
            //set dirpath
            $this->_dirpath = dirname(__FILE__);

            add_action('wp_enqueue_scripts', array($this, 'cmmc_styles'), 9999);
            add_action('wp_footer', array($this, 'cmmc_scripts'));

            add_shortcode("sme-cmmc-form", array($this, "displayCmmcForm"));
        }

        public function cmmc_scripts()
        {

            ///wp_enqueue_style('bootstrap_css', 'https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css', false, NULL, 'all');
            wp_enqueue_script('popper_js', 'https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js', array('jquery'), NULL, true);
            wp_enqueue_script('bootstrap_js', 'https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js', array('jquery'), NULL, true);

            wp_enqueue_script('cmmc_js', plugin_dir_url( __FILE__ ) . 'assets/js/app.js', array('jquery'), '1.0' );
            //wp_enqueue_style('custom_styles', plugins_url('/assets/css/styles.css', __FILE__));
            
        }

        public function cmmc_styles() {

                wp_register_style('bootstrap_css', 'https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css', false, NULL, 'all' );
                wp_enqueue_style('bootstrap_css');
                wp_enqueue_style('custom_styles', plugins_url('/assets/css/styles.css', __FILE__));

        }

有人可以请告诉我,我如何可能超过的主题风格,即使它只是为这个插件,或出列的风格为这一个单一的页面暂时?

共有1个答案

况景龙
2023-03-14

很难说如何在没有看过主题源代码的情况下出列脚本。无论如何,通常你只需要等到主题已经完成它的工作,挂钩到wp和他们删除样式搜索他们的句柄名称。像这样的东西:

add_action('after_setup_theme','alter_styles');
function alter_styles(){
    wp_dequeue_style();
    wp_dequeue_script();
}

相反,说到您的代码,第一个问题是:您确定您是在正确的时间,正确的地点加载了代码,还是它真的被执行了?您可以执行如下操作:

add_action('template_redirect','my_template_redirect');
function my_template_redirect(){
    if (is_page('your_page')){
        // Load class / do stuff with scripts/styles
    }
}

为了确保并执行该特定页面的代码

 类似资料:
  • 问题内容: 我有一些带有自己的CSS的HTML文件。我想在gwt应用程序中使用它们,所以我在应用程序中复制了html和css文件。 问题是当我打开HTML时,它使用了gwt主题样式。例如,在我的CSS中,html“主体”的背景色是黑色,但是除非我停用主题,否则它看起来是白色的。 如何覆盖gwt主题样式并使用CSS样式? 问题答案: 就像萨尔法兹(Sarfaz)所说- 应该是您的不得已的选择,因为它

  • 问题内容: 我查看了Stack Overflow,但没有找到解决方案,我知道如何在样式存在的情况下覆盖样式,只需更改其属性即可。但是现在我有一种奇怪的样式可以覆盖 这是我所拥有的一个例子 首先我有一个: 现在,我需要使用以下一种样式来覆盖该样式: 问题是第一种样式会追加第二种,但是我不希望那样,在第二种样式中我只需要一行,而不是从第一种样式追加? 问题答案: 您可以将另一个类添加到元素中,而不是重

  • 我现在用的是AppCompat。主题,但不希望按钮显示时标题全部大写,就像在v21设备上运行时一样。在V18或19上运行时,标题以我的字符串定义中定义的混合大小写显示,但在5.0上它们都是大写的。 一般来说,我可以通过使用没有任何特定继承的样式来设计按钮的样式——比如自定义背景图像。例如,下面是我的应用程序的主题定义: 以下是我应用于布局中的按钮小部件的典型样式: “capi0014 ze”项是我

  • 问题内容: 我有以下风格: 它来自主题的CSS样式文件。但是我想用这种风格覆盖它: 但这没有效果,我的组件使用第一种样式。如何覆盖第一个样式1?我尝试过,但它什么也没做。 我应该在css文件的开头定义自定义样式吗? 更新: 我发现我可以使用函数gridOptions.getRowClass设置要使用的样式类。但是我想解决中心问题(对于我在应用程序中使用的所有角度网格)。任何的想法? 问题答案: 你

  • 问题内容: 如何控制中的body元素的背景图像和颜色?请注意,嵌入的body元素具有一个类,并且是属于我的网站的页面的。 我需要这样做的原因是我的网站将黑色背景分配给正文,然后将白色背景分配给包含文本的div。所见即所得(WYSIWYG)编辑器在编辑时会使用嵌入内容,但其中不包含div,因此文本很难阅读。 编辑器中的when 主体具有一个在其他任何地方都没有使用过的类,因此我假设将其放在那里,这样

  • 尽管我们一直在努力使 Flarum 变得尽可能美丽,但每个社区可能都希望进行一些调整/修改,以适合他们所需的风格。 管理面板 的「外观」页面是开始定制论坛的理想之地。在这里,您可以: 选择主题颜色 切换夜间模式和彩色导航栏。 上传标志和站点图标(浏览器标签中显示的图标)。 在自定义页眉和页脚添加 HTML。 添加 自定义LESS/CSS 来改变元素的显示方式。 CSS 是一种样式表语言,它告诉浏览

  • 问题内容: 我正在开发页面,现在以我的CSS样式我有以下代码行 为我的页面。现在,我的某些页面不需要此行 我可能会在页面的内部CSS中覆盖它,这将导致原始行为被忽略? 问题答案: 使用不推荐,但在这种情况下,我想你应该- 在您的内部CSS中编写此代码-

  • 问题内容: 我只是简单地尝试通过FireBug在生成的HTML中查找组件的名称,然后在JSF项目中手动定义的CSS中对其进行了更改,但无法覆盖PrimeFaces的CSS定义。预先感谢您的任何想法。 问题答案: 如果使用primefaces2.2.1,请使用h:outputStylesheet标记并将其包含在h:body中,而不要包含在h:head中,以覆盖primefaces样式表,与h:out