Intereting Posts
Вызов изображения в папке темы изнутри страницы / страницы? Пользовательская функция для изменения вложений при создании сообщений – почти там Постоянная ссылка на таксономию Перечислите пользовательскую таксономию, специфичную для одного типа пользовательских сообщений. Как регистрировать и размещать файлы JavaScript без нарушения зависимостей плагина? Отфильтровать несколько настраиваемых полей Значения с помощью флажков Отображать значение настраиваемого поля в виде mailto: link Как изменить стандартную цветовую схему администратора по умолчанию в MP6 wp_link_page – обернуть текущий элемент страницы Получение сообщений из функции wordpress в ajax Плагин, чтобы забронировать курс и оплатить онлайн Дополнительные темы – хорошо или плохо? Пользовательские данные о забытых типах сообщений get_the_ID () работает над моей локальной разработкой, но не на промежуточном сервере Объединить функцию с контентом

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

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

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, но не на каждом блоге в многоузловой среде.

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

Solutions Collecting From Web of "Как сделать мой плагин совместимым с несколькими сайтами"