Su función de devolución de llamada debería ejecutarse cuando su complemento esté activado o activado en la red para un solo sitio. De cualquier manera, debería estar funcionando.
Sin embargo, si pretende que se ejecute el código contenido en su devolución de llamada para cada blog de su red, tenga en cuenta que esto no sucederá de inmediato, en su lugar, el código de su devolución de llamada aparecerá en el blog principal contexto.
Si su código debe ejecutarse en cada blog tras la activación de la red:
function my_plugin_activate($network_wide) {
if ( is_multisite() && $network_wide ) {
global $wpdb;
foreach ($wpdb->get_col("SELECT blog_id FROM $wpdb->blogs") as $blog_id) {
switch_to_blog($blog_id);
//do your specific thing here...
restore_current_blog();
}
} else {
//run in single site context
}
}
register_activation_hook( __FILE__, 'my_plugin_activate' );
Si su código debe ejecutarse cuando se crea un nuevo blog:
function my_plugin_new_blog($blog_id, $user_id, $domain, $path, $site_id, $meta) {
//replace with your base plugin path E.g. dirname/filename.php
if ( is_plugin_active_for_network( 'my-plugin-name-dir/my-plugin-name.php' ) ) {
switch_to_blog($blog_id);
//do your specific thing here...
restore_current_blog();
}
}
add_action('wpmu_new_blog', 'my_plugin_new_blog', 10, 6 );
Además:
Para aquellos que leen una funcionalidad similar pero para todos los complementos que activan la red (no solo el que usted controla, si corresponde) , es posible que desee ver: enlace que asegurará que cada complemento en su red multisitio en la cual está activada por la red, tenga tanto su register_activation_hook
como register_deactivation_hook
ejecutado en el contexto de cada blog.