2

我一直在使用WPAlchemy类在 WordPress 中创建元框,这一直很好,直到我升级到 WordPress 3.6。

随着升级,我突然开始收到以下错误:

Strict Standards: call_user_func_array() expects parameter 1 to be a valid callback, non-static method WPAlchemy_MetaBox::_global_head() should not be called statically in /wp-includes/plugin.php on line 406

Strict Standards: Non-static method WPAlchemy_MetaBox::_is_post() should not be called statically in /wp-content/wpalchemy/MetaBox.php on line 1352

Strict Standards: Non-static method WPAlchemy_MetaBox::_is_post_or_page() should not be called statically in /wp-content/wpalchemy/MetaBox.php on line 986

Strict Standards: Non-static method WPAlchemy_MetaBox::_get_current_post_type() should not be called statically in /wp-content/wpalchemy/MetaBox.php on line 1024

Strict Standards: Non-static method WPAlchemy_MetaBox::_is_page() should not be called statically in /wp-content/wpalchemy/MetaBox.php on line 1352

Strict Standards: Non-static method WPAlchemy_MetaBox::_is_post_or_page() should not be called statically in /wp-content/wpalchemy/MetaBox.php on line 1005

Strict Standards: Non-static method WPAlchemy_MetaBox::_get_current_post_type() should not be called statically in /wp-content/wpalchemy/MetaBox.php on line 1024

无论我是否实际创建任何元框,都会出现这些错误。

其他一些人似乎也遇到了同样的问题,但我一直无法找到解决方案(除了禁用错误报告,这并不是真正的解决方案)。不幸的是,这超出了我相当基本的 PHP 技能。

4

2 回答 2

1

看来我已经为此创建了一个解决方法。这里有一些帮助:http ://www.pirenko.com/blog/2013/10/17/wpalchemy-warnings-fix/

于 2013-10-17T13:03:37.417 回答
0

虽然 Pirenko 链接的补丁正在运行,但它绝对不是解决问题的最佳方法,因为补丁作者只是添加了重复的代码并避免使用标准的 WPAlchemy 方法。

此外,该补丁以某种方式导致我正在开发的插件出现问题,因此我不厌其烦地亲自修复了与 WPAlchemy 相关的严格通知。以下是更改: https ://github.com/mch0lic/wpalchemy/commit/d53216953b1e0f761c6b2f94da257a638f85aa8a

注意我不确定将 add_action 钩子移动到构造函数是否可以接受,因为我不太熟悉 WPAlchemy 及其工作流程,但即使在更改 WPAlchemy 相关代码之后,我的插件也可以正常工作。

于 2013-12-14T04:57:05.007 回答