[英]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.