覆盖函数


Overiding the function

我正在使用一个wordpress插件"Contact-form-7",有一个函数[function wpcf7_default_form_template(){}]在文件[contact-form.php]…

现在真正的工作是我在我的function.php中创建的自定义模板中编写了相同的函数,但我面临问题[函数redclare错误或插件未激活]

<?php 
include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
// check for plugin using plugin name
if ( is_plugin_active( 'contact-form-7/wp-contact-form-7.php' ) ) {
//Code function for default form
if(! function_exists('wpcf7_default_form_template')){
function wpcf7_default_form_template() {}
}
}
?>

如果我使用上面的代码,我没有得到函数redclare....

<?php 
include_once( ABSPATH . 'wp-admin/includes/plugin.php' );
// check for plugin using plugin name
if ( is_plugin_active( 'contact-form-7/wp-contact-form-7.php' ) ) {
//Code function for default form
function wpcf7_default_form_template() {}
}
?>

现在上面的代码是我需要的…我想用function.php中的函数覆盖插件文件函数,以激活插件…

谢谢!

在这种情况下,最简单的方法是直接修改"Contact-form-7"插件核心。

根据我的经验,在生产服务器上更新插件/核心是很少见的事情,而且很可能你不会这么做。

或者你可以尝试在这个函数中搜索钩子,它们是wordpress中特殊的子系统,用于在函数的某个点修改数据