为什么 get_template_directory_uri() 函数对某些文件有效,而对其他文件无效?

问题描述 投票:0回答:1
php html wordpress
1个回答
0
投票

我对 php 缺乏经验,也许我遗漏了一些东西?

当然可以。正如错误消息已经告诉我们的:

PHP 致命错误:未捕获错误:调用...中未定义的函数 get_template_directory_uri()

对于 PHP 引擎,该函数未定义。这意味着,PHP 本身没有此函数(也没有任何启用的扩展)并且定义该函数的 PHP 脚本未加载。

在这个领域,WordPress 有一组通用的功能,但它也有不同的入口点(在您的错误情况下,入口点是

login.php
脚本)。

因此,应用程序的某些部分/部分比其他部分/部分具有更多功能。这是一种优化技术,如果只需要一小部分即可完成工作,则无需加载所有内容,但这也意味着您不能期望所有功能都可用。

尤其是当您使用尝试错误然后收到错误消息时。

当您仔细观察时,这可能对您来说已经有意义:登录页面 (

login.php
) 独立于网站主题。无论主题是什么,它都必须始终有效(例如通过管理界面更改它)。因此,不需要加载主题函数,因此 - 由于该函数不可用 - 你会收到错误。

幸运的是,WordPress 以其源代码形式提供。这是对其进行更改的首选形式。这样做的好处是,您可以阅读和研究所有源代码(通过适合您的入口点从错误点到定义点进行逆向工程),并且您应该能够最终找出您是否仍然可以让它工作(概念证明)。

然后,检查这是否真的有意义,并且只有当可以调用的函数实际上可以解决您的问题时,或者如果没有该函数就是一个很好的默认值。

我会做这个实验,但事后可能会发现这不是真正的交易。您将更好地掌握任何其他即将出现的问题,尤其是 PHP 方面的问题。

© www.soinside.com 2019 - 2024. All rights reserved.