最近,一位用户询问我们如何在向依赖 PHP 函数的 WordPress 网站添加一些新代码之前检查该函数是否存在。
WordPress 最好的部分是它的灵活性,包括能够将您自己的功能添加到您的网站。但是,有时您的自定义代码可能无法工作,因为它引用的函数不再存在。
在本文中,我们将向您展示如何在将某个功能添加到 WordPress 主题之前轻松检查该功能是否存在。
为什么要将“If Function Exists”添加到您的自定义代码中?
WordPress主要是用PHP编程语言编写的。PHP 是一种服务器端编程语言,运行在WordPress 托管提供商的服务器上。
由于 PHP 必须在页面加载到访问者的浏览器中之前完成运行,因此它有一定的限制。这些限制之一是,如果出现问题,可能会阻止整个页面加载。
在 WordPress 中,如果缺少的函数阻止其余代码运行,那么它会停止并显示严重错误或致命错误消息。
什么会导致某个功能突然停止工作或丢失?
这是一个比您想象的更常见的 WordPress 错误。
例如,假设您的 WordPress 插件之一附带了一项已添加到主题页脚区域的功能。停用该插件将使该功能消失并导致您的 WordPress 网站出现严重错误。
话虽这么说,让我们看看如何在 WordPress 主题文件中执行某个函数之前轻松检查该函数是否存在。
检查 WordPress 中是否存在某个函数
幸运的是,PHP 编程语言附带了一个内置方法,可以在执行函数之前轻松检查函数是否存在。
假设您有一个 WordPress 函数,可以显示当前时间和时区信息。这是一个示例代码片段,您可以使用它来尝试。
您可以将其直接添加到主题的functions.php 文件中或使用代码片段插件,例如WPCode(推荐)。您可以查看我们关于如何在 WordPress 中轻松添加自定义代码的指南:
12345 | //display current time with timezone function wpb_show_timezone() { $better_time = current_time( 'F j, Y g:i a e' ); echo "<p>The current time is " . $better_time . "</p>" ; } |
由
要调用此函数,您需要在 WordPress 主题中要显示当前时间的任意位置添加以下代码。
1 | <?php wpb_show_timezone(); ?> |
由
这就是我们的测试网站上的样子。
现在,如果负责执行这个函数的代码消失了,会发生什么?
对该函数的调用会像这样破坏您的网站。
让我们添加一个检查以确保此代码仅在该函数存在时运行。
同样,您需要将代码直接添加到主题的functions.php文件中或使用代码片段插件,例如WPCode(推荐):
1234567 | <?php if ( function_exists( 'wpb_show_timezone' )) { wpb_show_timezone(); } else { // do nothing } ?> |
由
在此代码中,我们使用该function_exists()
函数。该函数检查函数是否存在并返回 True 或 False。
然后,我们添加了一个 if-else 条件,以根据函数的可用性采取适当的操作。
现在,当该功能不再可用时,代码将简单地跳过它,WordPress 将能够正常加载网站的其余部分。
我们希望本文能帮助您了解如何检查 WordPress 中是否存在某个函数。您可能还想查看我们完整的WordPress 故障排除指南或我们的专家精选的最佳拖放 WordPress 页面构建器。