Sto creando un tema figlio per alcuni membri della mia facoltà e, come parte del tema, vorrei che una manciata di plugin venisse attivata nel momento in cui il tema è attivato. Quindi, naturalmente, ho usato l'azione after_setup_theme e ho chiamato la mia funzione di installazione. Funziona alla grande, tranne che funziona su OGNI richiesta (admin e non). Ho dimostrato questo aggiungendo questo alla fine della funzione di installazione:
echo '<script type="text/javascript">alert("This action was run")</script>';
E di conseguenza ricevi un avviso javascript su ogni richiesta di amministratore e ogni richiesta di front-end (ho una configurazione di rete, quindi ovviamente su siti in cui questo tema non è attivo, non esegue la funzione)
Quindi la domanda è: è un bug? Sto facendo qualcosa di sbagliato? Ecco il codice completo che sto usando:
add_action( 'after_setup_theme', 'fwp_setup' );
function fwp_setup(){
// -- Unrelated code remove for the sake of brevity
require_once($_SERVER['DOCUMENT_ROOT'].'/wp-admin/includes/plugin.php');
activate_plugin('enable-media-replace/enable-media-replace.php');
activate_plugin('seo-image/seo-friendly-images.php');
activate_plugin('w3-total-cache/w3-total-cache.php');
echo '<script type="text/javascript">alert("This action was run")</script>';
}
Qualsiasi approfondimento sarebbe molto apprezzato!
after_switch_theme
fa esattamente quello che intendevo qui. Viene attivato dopo che il tema è passato al tema. Una delle soluzioni menzionate di seguito utilizzaswitch_theme
. Questo non ha i risultati desiderati, poiché accade solo quando si passa dal tema.