为什么在创建微件触发器时使用__构造而不是WIDGET_CLASS_NAME会出错

时间:2011-04-18 作者:JM at Work

我发现如果我使用

class widget_name extends WP_Widget {
    function __construct() { ... }
}
而不是

class widget_name extends WP_Widget {
    function widget_name() { ... }
}
我得到一个错误

Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 523800 bytes) in /var/www/vhosts/klifmedia.net/httpdocs/jm/km/wp-content/themes/km/functions.php on line 77

1 个回复
最合适的回答,由SO网友:scribu 整理而成

因为widget_name::__construct() 呼叫WP_Widget::WP_Widget(), 依次调用widget_name::__construct()

一个简单的解决方案是widget_name::__construct() 呼叫WP_Widget::__construct() 直接地

另请参见http://core.trac.wordpress.org/ticket/16768#comment:9

结束

相关推荐

Displaying oEmbed errors?

有时,通过oEmbed嵌入项目是不可能的,例如,当YouTube视频已禁用嵌入时。The oEmbed service will return a 401 Unauthorized, 并且不会转换代码。有没有办法通知用户这一点?当前的工作流是非直观的(至少对我来说),我更喜欢在WordPress页面上,或者更好的是,在编辑器中显示一条消息,说明对象无法嵌入。