Su función de devolución de llamada debe ejecutarse cuando su complemento está activado en la red o activado para un solo sitio. De cualquier manera, debería estar funcionando.
Sin embargo, si tiene la intención de que el código contenido dentro de su devolución de llamada se ejecute para cada blog en su red, tenga en cuenta que esto no sucederá de manera inmediata, sino que el código dentro de su devolución de llamada lo hará en el contexto primario del blog.
Si su código necesita ejecutarse en cada blog luego de 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 necesita 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 );
Adicionalmente:
Para aquellos lectores que desean una funcionalidad similar pero para todos los complementos que activan la red (no solo el que usted controla, si corresponde) , puede consultar: https://wordpress.org/plugins/proper-network -activation / que asegurará que cada complemento en su red multisitio en el que está activada la red, tenga ambos register_activation_hook
y se register_deactivation_hook
ejecute en cada contexto de blog.