致命错误:调用未定义的函数Add_action()-这是一个未触及的问题

时间:2015-02-22 作者:Mayeenul Islam

这个问题在许多方面被问了很多次,但不幸的是,大多数答案都没有很好地涵盖。我在使用include文件时遇到了同样的问题。

在我的214个孩子主题中functions.php 我使用了:

require_once get_stylesheet_directory_uri() .\'/admin-panel/theme-options.php\';
我正在使用Ian Stewart\'s Sample Theme Options. 我在我的许多项目中使用过它,与这里提到的方法相同,没有出现错误。但最近我在我的几个项目中遇到了这个问题。如果我把代码带到functions.php 那么一切都好了。但它只在我试图包含/需要外部文件时发生。

我有个错误:

Fatal error: 调用未定义函数add_action() 在C:\\xampp\\htdocs\\project\\wp content\\themes\\my theme\\admin panel\\theme options中。php在线2

在本例中,我在使用子主题(T14)时出错。但即使是在我父母的一个主题中,我也面临着这个问题。但在相同的环境中,我的其他项目在所有包含和/或要求(其中add_action()定义了)。我有问题ALL the add_action() calls, 像CPT分配、自定义分类法分配等,但我正在成功开发另外两个项目,包括inc/ 分配所有我的CPT的文件夹及其元框。

我尝试重新安装WordPress,停用所有插件,从子主题尝试,通过修改Twenty15(应用默认主题)尝试同样的事情,尝试require(), require_once(), include(), include, require_once, 和require 一个接一个的失败。我在所有好的和有问题的安装中都使用WP 4.1.1。

前面的大多数问题都用一句简单的话来回答:

正如消息所说,您尚未定义函数add_action() 而你却在尝试使用它

但是

  • how come (WordPress是否已经定义了它)?和why it\'s differing project to project in the same environment (为什么现在只在特定的项目中超出了范围)

1 个回复
最合适的回答,由SO网友:fuxia 整理而成

get_stylesheet_directory_uri() 返回URL。像调用任何其他公共可用资源一样调用请求的文件:不需要include 陈述这就像直接在浏览器中打开PHP文件一样。没有WordPress上下文,函数add_action()add_filter() 未定义。

使用get_template_directory() 在父主题和get_stylesheet_directory() 在子主题中。

使残废allow_url_fopen and allow_url_include 在您的开发环境中,尽早捕获此类错误,并提供更好的错误消息。

结束

相关推荐

Adding custom Bulk Actions

我一直在寻找将自定义批量操作添加到类别页面的方法。他们中的大多数人说,不可能用干净的方式来做这件事,因为这件事没有挂钩。大多数解决方案包括在客户端使用JS通过DOM操作添加选项。虽然这是可行的,但它仍然是一个相当丑陋的解决方案。我读过的大多数文章都是2年前的,所以我一直在想,从那时起到现在,这个问题已经添加了一个新的挂钩或解决方案,以便对这个问题有一个更及时的解决方案。