web-dev-qa-db-fra.com

Pourquoi utiliser __construit au lieu de widget_nom_classe lors de la création d'un widget déclenché une erreur de mémoire?

Je trouve que si j'utilise

class widget_name extends WP_Widget {
    function __construct() { ... }
}

au lieu de

class widget_name extends WP_Widget {
    function widget_name() { ... }
}

Je reçois une erreur comme

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

3
JM at Work

Parce que widget_name::__construct() appelle WP_Widget::WP_Widget(), qui à son tour appelle widget_name::__construct() etc.

Une solution simple consisterait à appeler widget_name::__construct(), appeler directement WP_Widget::__construct().

Voir aussi http://core.trac.wordpress.org/ticket/16768#comment:9

5
scribu