Создание кастомных таблиц в БД в режиме мультисайта
Как создать свои таблицы в БД для ВСЕХ сайтов сети, в том числе и созданных после активации плагина?
Использую код ниже создаётся только одна "глобальная" таблица, а нужны таблицы для каждого сайта сети вида prefix_ID_ibc_stock, в том числе и для сайтов, которые будут созданы позже? или это нужно делать только вручную, т.е. приактивации плагина запускать цикл с ID сайтов и для каждого сайта проверять отдельно наличие таблицы?
/**
...
Network: TRUE
*/
namespace ibc;
function activate() {
if ( is_multisite() ) {
global $wpdb;
$table_name = $wpdb->get_blog_prefix() . 'ibc_stock';
if ( $wpdb->get_var( "SHOW TABLES LIKE '$table_name'") != $table_name ) {
require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
$charset_collate = $wpdb->get_charset_collate();
$sql = "CREATE TABLE $table_name (
id mediumint(9) NOT NULL AUTO_INCREMENT,
book_id mediumint(9) NOT NULL,
registration_number varchar(55) DEFAULT '' NOT NULL,
PRIMARY KEY (id)
) $charset_collate;";
dbDelta( $sql );
}
}
}
register_activation_hook( __FILE__, 'ibc\activate' );
Зачем спрашивать, создай сам 3 мультисайта и запусти свой код и узнаешь.
Но скорее всего будет нужно, выбрать все ид мультисайтов и пройтись через форич где в цикле и добавлять таблу в каждую базу