【问题标题】:Go around cannot redeclare error in PHPGo around 无法在 PHP 中重新声明错误
【发布时间】:2011-03-07 09:42:57
【问题描述】:

我正在尝试整合 WordPress 和 MyBB 论坛。具体来说,我只想将 WordPress 的导航栏(新菜单)添加到我的 MyBB 网站。按照 CODEX 示例,我在 MyBB 安装的 header.php 中添加了以下内容:

require('/home/linuxdis/public_html/wp-blog-header.php');

但是,我在导航到论坛时收到 500 错误。检查 error_log 发现:

PHP 致命错误:无法在 /home/linuxdis/public_html/wp-includes/capabilities.php 中重新声明 is_super_admin()(之前在 /home/linuxdis/public_html/forum/inc/functions.php:5484 中声明)第1213章

真烦,函数的名字都一样。除了重命名其中一个功能并可能完全破坏一切之外,有没有办法解决这个问题? :/

【问题讨论】:

    标签: php wordpress mybb


    【解决方案1】:

    用户 require_once() 而不是 require(),它将确保每页只包含该文件一次。

    虽然在这种情况下并不理想,但您可以将每个函数包装在 function_exists() 检查中:

    if(!function_exists('myfunc') {
        function myfunc() {....}
    }
    

    如果与 WP/MyBB 发生直接冲突,这可能是您唯一的选择,但如果他们都需要 is_super_admin(),您将陷入困境。

    【讨论】:

    • 谢谢。不幸的是,虽然您的代码有效,但看起来还有许多其他功能。我必须执行 #4 并决定停止,谁知道有多少。
    猜你喜欢
    • 2017-06-15
    • 2023-04-02
    • 2011-09-12
    • 2017-05-22
    • 2010-10-17
    • 2014-11-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多