WordPress的:错误的函数重新声明错误?
我知道php,但对wordpress很新。我只是不想学这东西,只需要改变某些事情了一小会儿,WordPress的:错误的函数重新声明错误?
我在文件
var/www/wp-content/plugins/woocommerce/templates/checkout/thankyou.php
function cr(){
}
声明功能,但WordPress的给我的错误
Can't redeclare function cr() (previously declared on line no..xxx) in file ....
现在提到的行号就是这个函数声明的唯一的地方,这是我的尝试:
- 试图将函数重命名为非常罕见的名称,并且每次都发生相同的错误。
-
包裹在
if(!function_exists('cr')) { function cr() { .. .. } }
功能我得到一个错误:
Fatal error: Call to undefined function cr() in /var/www/storearn/wp-content/plugins/woocommerce/templates/checkout/thankyou.php on line 74
可能是什么原因?
你正在声明函数在错误的文件中。
首先,模板文件是声明函数的错误地方。它属于自定义插件或你的主题(functions.php或从那里包含的某个文件)。理想情况下是一个自定义插件,但它取决于上下文。将插件放置在正确的位置不应有被复制的风险。您也可以将其作为前缀。
我看到的第二个问题是你试图修改WooCommerce插件本身内的文件。一旦更新WC,这些修改将被覆盖。模板应该在您的主题中单独覆盖。
文档:https://docs.woocommerce.com/document/template-structure/
感谢分享最佳实践,但为什么它说功能已经宣布! –
按照概述的过程,你不会有这个问题。这可能是因为模板以意想不到的方式加载,您在其他地方有一个具有相同名称或少数其他类似问题的功能。所有这些问题都可以通过正确的方式解决 –
downvoter?关心评论? –
为什么要在'thankyou.php'文件中声明函数? –
您不能有条件地声明函数(尽管您可以根据需要有条件地声明匿名函数)。另外,'cr'对于一个函数来说是一个糟糕的名字。给你的函数有意义的名字。 – GordonM