Intereting Posts
Показывать роль пользователя рядом с комментарием Удалите определенные CSS и JS из головы CSS, добавленный через customizer, пренебрегает необходимостью детской темы? Безопасно ли вручную подписывать пользователя при использовании AJAX? Пользовательское правило перезаписи не работает Добавление пользователя meta для отправки метафайла wp_insert_post () не работает Как найти вредоносную ссылку на веб-сайте wp add_submenu_page обратный вызов файла вместо функции? Есть ли разница между hooks posts_where, где posts_join и posts_search работают мудрый? Пользовательский размер изображения не восстанавливается при редактировании изображения. WP_Query – доступ к MetaValue из результата запроса Чтобы удалить элементы панели управления по умолчанию и добавить быстрый виджет для пользовательского типа сообщения перевод не работает с text_domain Если я удалю базу категорий из своих URL-адресов, насколько сложно будет откат? Добавить несколько сообщений сразу в WordPress

Как сделать мой плагин совместимым с несколькими сайтами

Я хочу, чтобы мой плагин был установлен в каждом блоге и создавал таблицы базы данных в блоге. У меня есть этот код:

register_activation_hook( __FILE__, 'install1' ); function install1() { global $wpdb; if (function_exists('is_multisite') && is_multisite()) { // check if it is a network activation - if so, run the activation function for each blog id if (isset($_GET['networkwide']) && ($_GET['networkwide'] == 1)) { $old_blog = $wpdb->blogid; // Get all blog ids $blogids = $wpdb->get_col($wpdb->prepare("SELECT blog_id FROM $wpdb->blogs")); foreach ($blogids as $blog_id) { switch_to_blog($blog_id); _install2(); } switch_to_blog($old_blog); return; } } _install2(); } function _install2() { require_once WP_PLUGIN_DIR . '/pluginfolder/functions/database.php'; require_once WP_PLUGIN_DIR . '/pluginfolder/functions/general.php'; $db_error = false; $sql_file = WP_PLUGIN_DIR . '/pluginfolder/ossq.sql'; os_db_connect(DB_HOST, DB_USER, DB_PASSWORD); os_set_time_limit(0); os_db_install(DB_NAME, $sql_file); if ($db_error != false) { // echo 'instalation successfull'; } else { } 

Код вдохновлен на это сообщение в блоге [http://shibashake.com/wordpress-theme/write-a-plugin-for-wordpress-multi-site]

Файл SQL состоит из:

 DROP TABLE IF EXISTS address_book; CREATE TABLE address_book ( address_book_id int NOT NULL auto_increment, customers_id int NOT NULL, entry_gender char(1), entry_company varchar(255), entry_firstname varchar(255) NOT NULL, entry_lastname varchar(255) NOT NULL, entry_street_address varchar(255) NOT NULL, entry_suburb varchar(255), entry_postcode varchar(255) NOT NULL, entry_city varchar(255) NOT NULL, entry_state varchar(255), entry_country_id int DEFAULT '0' NOT NULL, entry_zone_id int DEFAULT '0' NOT NULL, PRIMARY KEY (address_book_id), KEY idx_address_book_customers_id (customers_id) ); 

Однако, он не работает, плагин создает таблицы так же, как на обычном wordpress, но не на каждом блоге в многоузловой среде.

Пожалуйста помоги!