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 ....

现在提到的行号就是这个函数声明的唯一的地方,这是我的尝试:

  1. 试图将函数重命名为非常罕见的名称,并且每次都发生相同的错误。
  2. 包裹在

    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

可能是什么原因?

+0

downvoter?关心评论? –

+0

为什么要在'thankyou.php'文件中声明函数? –

+0

您不能有条件地声明函数(尽管您可以根据需要有条件地声明匿名函数)。另外,'cr'对于一个函数来说是一个糟糕的名字。给你的函数有意义的名字。 – GordonM

你正在声明函数在错误的文件中。

首先,模板文件是声明函数的错误地方。它属于自定义插件或你的主题(functions.php或从那里包含的某个文件)。理想情况下是一个自定义插件,但它取决于上下文。将插件放置在正确的位置不应有被复制的风险。您也可以将其作为前缀。

我看到的第二个问题是你试图修改WooCommerce插件本身内的文件。一旦更新WC,这些修改将被覆盖。模板应该在您的主题中单独覆盖。

文档:https://docs.woocommerce.com/document/template-structure/

+0

感谢分享最佳实践,但为什么它说功能已经宣布! –

+0

按照概述的过程,你不会有这个问题。这可能是因为模板以意想不到的方式加载,您在其他地方有一个具有相同名称或少数其他类似问题的功能。所有这些问题都可以通过正确的方式解决 –