繁体   English   中英

覆盖WordPress中的函数

[英]Override a function in WordPress

我有一个插件,因为我需要更改一些文本,但是这个函数没有钩子可以使用。

通常使用remove_action()remove_filter()来覆盖该函数。 对于这两个函数,我们需要覆盖过滤器名称。 但是这个插件功能不会添加任何过滤器。

现在我需要覆盖这个功能。

例如

插件中的Plugin.php

function plugin(){
    echo 'hello';
    echo 'welcome you';
}

主题中的Function.php

我想在plugin.php中使用函数plugin()

function theme_plugin(){
    echo 'hello';
    echo 'You are welcome';
}

plugin()没有add_action

如何覆盖plugin()theme_plugin()

看看这里重新定义PHP函数? ,你不能覆盖PHP功能或超载它。 你必须找到解决问题的另一种方法。

问候,

如果我是对的,你可以给我们这个链接: http//sltaylor.co.uk/blog/customizing-new-user-email-pluggable-function/

****编辑**

我对wordpress没有多少经验。 但是这里有人要求相同: 在WordPress中覆盖插件中的主题功能

明确的答案是:

除非该函数被覆盖,否则。 这是基本的PHP。 您无法重新定义函数。 如果你尝试,你会得到一个致命的错误。

编写WordPress的部分内容将被覆盖。 看看/wp-includes/pluggable.php。 其中的每个函数都包含在if(!function_exists(...))条件中。 除非你的主题做同样的事情,有些功能也是如此,否则你无法覆盖。

四处寻找可能对您有所帮助的过滤器。

看看你的代码,你应该能够解开它。 只要确保将钩子钩得足够晚。 这不是一个好的解决方案,但是因为你破坏了主题功能,而且还必须知道主题正在使用的所有钩子函数的名称。

是否存在$ fragment中的内容,或$ _POST或$ _GET或其他任何东西,您可以使用它来有条件地运行代码,剩下的就是其余部分。

无论如何,Wordpress是开源的,所以你可以自己更改代码吗? 为什么要改变插件?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM