WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru

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

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

Нет ответов на этот вопрос.

    На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация