用自定义插件覆盖插件的最佳方式

时间:2014-12-31 作者:Lion

我必须为客户对bbPress(WordPress的论坛插件)做很少的更改,大约只有5行CSS。

但我不确定把CSS代码放在哪里最合适。修改原来的插件CSS文件似乎不是一个好主意,因为它可能会在下次更新时被覆盖,很难看到修改了什么。

我的第二个想法是将CSS代码放在主题的主样式表中。这似乎有点好,但客户使用的是付费主题,也会得到更新。因此,在主题更新的情况下,这些更改将丢失。

另一个想法是编写一个小插件,将css代码注入DOM。它将独立于外部事物的任何更新。这似乎是确保代码不会被任何更新覆盖的唯一方法。但这几行的插件似乎也有点言过其实。

哪里是放置此类CSS修改的最佳位置,以便它们不会被wordpress、主题或插件的更新覆盖?

WordPress的开发非常模块化,因此在我看来,如果没有额外的工作,这是不可能的(每一次更新都必须记录并加以考虑)。

2 个回复
SO网友:Pieter Goosen

不幸的是,你必须为此编写一个小插件,在我看来,这是最好、最干净、最安全的选择。正如您已经说过的,更改插件或主题中您不是作者的任何文件都是一个非常糟糕的主意,这也适用于核心文件

我将倾向于不使用儿童主题,因为主题可能会在以后发生变化,然后你将不得不再次这样做。

你可以这样做

在插件文件夹中创建一个文件夹,并根据需要命名

创建一个主插件文件并调用所需内容。打开它并在该文件的顶部添加以下内容

<?php
/*
Plugin Name: NAME WHATEVER YOU LIKE
*/
创建样式。css文件,并在其中加载所有自定义样式

接下来,将您的自定义样式排队。css。这里有两个选项,或者使用$dependency 中的参数wp_enqueue_style() 或者简单地添加$priority 你的行动

以下是后者的一个示例

add_action( \'wp_enqueue_scripts\', \'my_custom_styles\', PHP_INT_MAX );

function my_custom_styles() {
    /* Register our stylesheet. */
    wp_enqueue_style( \'myPluginStylesheet\', plugins_url(\'stylesheet.css\', __FILE__) );
}
您的插件主文件应该如下所示

<?php
/*
Plugin Name: NAME WHATEVER YOU LIKE
*/

add_action( \'wp_enqueue_scripts\', \'my_custom_styles\', PHP_INT_MAX );

function my_custom_styles() {
    /* Register our stylesheet. */
    wp_enqueue_style( \'myPluginStylesheet\', plugins_url(\'stylesheet.css\', __FILE__) );
}

SO网友:user200260

如果您正在自定义主题,我的建议是使用child theme.

Why?

WordPress中的子主题将继承父主题的所有功能、特性和代码,而无需对父主题本身进行任何更改。这允许用户更改父主题的样式并添加/修改功能,而不会失去更新父主题的能力。

How to modify theme?

<在上创建子主题MeInstructionscodex

在样式中添加额外的css行。css

仅此而已。

结束

相关推荐

根据上一页显示不同的CSS或信息

我遇到了一个有点棘手的问题,可能是我想得太多了。我需要能够显示不同的css,这取决于用户来自哪个活动页面。为了更好地说明:Campaign 1 \\ Campaign 2 ----> Information or css ----> page Campaign 3 / 我希望这是可以理解的。