플러그인이 네트워크 활성화 또는 단일 사이트에 대해 활성화되면 콜백 기능 이 실행 되어야 합니다. 어느 쪽이든, 그것은 작동해야합니다.
그러나 콜백에 포함 된 코드가 네트워크의 각 블로그에 대해 실행되도록하려면이 코드가 기본적으로 제공되지 않고 대신 기본 블로그 컨텍스트에 표시됩니다.
네트워크 활성화시 각 블로그에서 코드를 실행해야하는 경우 :
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' );
새 블로그를 만들 때 코드를 실행해야하는 경우 :
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 );
또한 :
비슷한 기능을 원하지만 네트워크가 활성화 된 모든 플러그인 (해당하는 경우 제어하는 플러그인 만이 아님)을 읽는 독자 는 https://wordpress.org/plugins/proper-network를 참조하십시오. -activation / 당신의 다중 네트워크의 각 플러그인이있는 네트워크가 활성화되어 있는지 확인 할,이 둘의 register_activation_hook
및 register_deactivation_hook
각 블로그의 컨텍스트에서 실행됩니다.