widgets_init-Action create_function ersetzen durch weniger unsichere Methoden

Bildquelle: Pixabay, PublicDomainPictures

Immer noch gibt es Plugins die Widgets mit create_function registrieren.

add_action('widgets_init', create_function('', 'return register_widget("widget_latestseries");'));
add_action('widgets_init', create_function('', 'return register_widget("widget_seriestoc");'));

Die Funktion führt intern eval() aus, das die Ausführung von beliebigem PHP-Code erlaubt. Aus Sicherheitsgründen ist die Verwendung der Funktion daher nicht zu empfehlen. Außerdem sind Ausführungsgeschwindigkeit und Speicherverbrauch unvorteilhaft.

Mit PHP 5.3.0 oder neuer (was mittlerweile auf jedem Host verfügbar sein sollte) soll stattdessen die nativ vorhandene anonyme Funktionen verwendet werden.

add_action( 'widgets_init', function(){
	register_widget( 'widget_latestseries' );
	register_widget( 'widget_seriestoc' );	
});

Die zweite Alternative ist, Widgets mit einer benannten Funktion zu registrieren.

add_action( 'widgets_init', 'prefix_register_my_widgets' );

function prefix_register_my_widgets(){
	register_widget( 'widget_latestseries' );
	register_widget( 'widget_seriestoc' );	
}

Bitte Kommentarfunktion nicht für Supportanfragen nutzen. Dem kann hier nicht entsprochen werden. Die Angabe einer E-Mail-Adresse und eines Namens ist nicht erforderlich. Einen (Spitz)-Namen zu nennen wäre aber doch nett.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Hinweis: Sowohl angegebener Name als auch E-Mail-Adresse (beides ist optional, dafür werden alle Kommentare vor Veröffentlichung geprüft) werden dauerhaft gespeichert. Du kannst jeder Zeit die Löschung Deiner Daten oder / und Kommentare einfordern, direkt über dieses Formular (wird nicht veröffentlicht, und im Anschluss gelöscht), und ich werde das umgehend erledigen. – Mit hinterlassenen Kommentaren hinterlegte IP-Adressen werden nach zwei Monaten automatisch gelöscht

publicly queryable