Wie kann ich Code in functions.php ausführen, wenn switch_theme () aufgerufen wird?

Ich habe Code in functions.php, der nur ausgeführt wird, wenn das Theme zum ersten Mal aktiviert wird:

if ( is_admin() && isset($_GET['activated'] ) && $pagenow == 'themes.php' ) { //this code only runs when the theme is first activated } 

Ich bin jedoch ziemlich sicher, dass dieser Code nicht ausgeführt wird, wenn das Theme außerhalb des normalen Aktivierungsprozesses aktiviert wird. Zum Beispiel, wenn eine switch_theme () statement von einem Plugin aufgerufen wird.

In diesem Fall, wie kann ich meinen obigen Code ändern, um ihn auf switch_theme () auszuführen?

 if ( is_admin() && isset($_GET['activated'] ) && $pagenow == 'themes.php') OR (switch_theme_called() ) ) { //this code only runs when the theme is first activated } 

Solutions Collecting From Web of "Wie kann ich Code in functions.php ausführen, wenn switch_theme () aufgerufen wird?"

Nun, anstatt einen $ _GET-Parameter zu verwenden, könnten Sie einen initiierten Zustand in Ihrer Options-Tabelle speichern.

Z.B

 $initialized = get_option('mytheme_initialized'); if ( (false === $initialized) && is_admin() && ($pagenow == 'themes.php') ) { //this code only runs when the theme is first activated update_option('mytheme_initialized', true); } 

Leider ist der “register_activation” -Hook nur für Plugins verfügbar -> http://core.trac.wordpress.org/ticket/13602