将自定义插件中的脚本排在其他插件之前

时间:2019-10-15 作者:murcoder

我与另一个插件发生冲突,该插件使用钩子阻止了我自定义插件中的JS:

add_action(\'wp_enqueue_scripts\', \'<FOREIGN-PLUGIN>\');
有没有办法将我的JS排在所有其他插件之前?

我已经试过设定优先级了

add_action(\'wp_enqueue_scripts\', \'<FOREIGN-PLUGIN>\', 1);
add_action(\'wp_enqueue_scripts\', \'<MY-PLUGIN>\', 2);
但它不起作用。有什么想法吗?

2 个回复
SO网友:butlerblog

如果插件不包含优先级,则优先级为“10”(默认值)。

因此,在不更改(编辑)违规插件的情况下,您可以使用高于10的优先级在之后加载,或低于10的优先级在之前加载。

您提到希望更早地加载。如果是这样,那么您的示例中的优先级是向后的。将外部插件设置为1意味着它将在我的插件之前加载(设置为2)。相反,它应该是:

add_action(\'wp_enqueue_scripts\', \'<FOREIGN-PLUGIN>\', 2);
add_action(\'wp_enqueue_scripts\', \'<MY-PLUGIN>\', 1);
然后“<MY-PLUGIN>“将早于加载”<FOREIGN-PLUGIN>“。但正如我所提到的,如果它已经在另一个插件中,则不应编辑该插件和默认的Previor,因此您的排队应该是:

add_action(\'wp_enqueue_scripts\', \'<MY-PLUGIN>\', 1);
(或1-9中的某个优先级编号)。然后“我的插件”将首先排队。

SO网友:KGreene

使用依赖项。依赖项是脚本首先加载所依赖的脚本。这个<FOREIGN-PLUGIN> 示例中应该是脚本排队时使用的句柄。

$deps = array(\'<FOREIGN-PLUGIN>\');
wp_enqueue_script( $handle, $src, $deps);