Поддержка WordPress Multisite Создание таблиц в БД в режиме мультисайта

  • Как создать свои таблицы в БД для ВСЕХ сайтов сети, в том числе и созданных после активации плагина?
    Использую код ниже создаётся только одна «глобальная» таблица, а нужны таблицы для каждого сайта сети вида 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' );
    
  • Тема «Создание таблиц в БД в режиме мультисайта» закрыта для новых ответов.