libxml_disable_entity_loader 错误消息

你好,

我为在生产站点上进行修改创建了一个测试站点。在测试站点上,我注意到每个包含 Discourse 论坛链接的页面/文章都会出现以下错误:

警告:出于安全原因,libxml_disable_entity_loader() 已被禁用,错误位于 /www/way_to_my_puglin_folder/wp-discourse/lib/template-functions.php 第 xxx 行。

由于这是测试环境,我原本以为 Discourse 未识别出该合法网站,从而禁用了一些功能。然而,我刚将测试站点部署到生产环境,错误依然存在(在生产站点上,且使用的是合法 URL)。请问有什么办法可以消除这个错误吗?

所以没人知道这里发生了什么吗?
(顺便一提,这是 PHP 7 环境下最新版本的 WordPress 和 Discourse 插件。)

也许 @angus 能帮忙?

@Romain_Bisseret

这里出现的问题是因为您的托管服务商禁用了名为 libxml_disable_entity_loader 的 PHP 函数,而该函数在 WP Discourse 插件中会被使用。

该函数被广泛应用于各种 WordPress 插件中,在 PHP 7.* 版本中完全受支持,但在 PHP 8.0 中已被弃用。我们计划在不久的将来在 WP Discourse 插件中弃用该函数,同时开展其他工作以确保与 PHP 8.0 的完全兼容;事实上,我已经将此项任务优先安排在我的待办事项列表中。

能否请您确认以下信息:

  1. 您正在使用的 PHP 版本(抱歉,如果您提到 PHP 7 是指您正在运行的版本,我之前的表述可能不够清晰)。

  2. 您的托管服务商。或许可以咨询他们是否可以在您的实例上启用该功能。该函数在 PHP 7.* 中是受支持的。

谢谢。

谢谢 @angus。奇怪的是,这个问题在之前的生产环境中并未出现,仅在测试环境(即完整副本)中显现。我确认 PHP 版本为 7.4.11,托管服务商是 Kinsta。我会与他们核实。谢谢!

@Romain_Bisseret,提醒一下,我将在 4 月(即月底前)将移除 libxml_disable_entity_loader 的使用列入计划,这是 PHP 8.0 兼容性审查的一部分。

感谢 @angus!在此期间,托管公司已同意在我的账户上短期启用该功能。