/ Wordpress / Проблемы мультисайтовости

Проблемы мультисайтовости

17.12.2021

68

Система мультисайтов является сложным решением. В процессе реализации такой системы возникают определенные сложности. Рассмотрим их.

Увеличение базы данных

Сайты создаются как отдельные таблицы, но в одной базе данных. Из-за этого база существенно увеличивается в размере.

Как пишут в рекомендациях, система до 50 сайтов не должна существенно тормозить из-за базы данных. Но нужно учесть что это справедливо к простым информационным сайтам. С интернет-магазинами ситуация сложнее, т.к. там таблиц на каждый сайт больше.

Есть (уже не поддерживаемое) решение в виде плагина Multi DB (от WPMU DEV). Он разделяет сайты на несколько баз данных, но не каждый сайт в отдельную базу. Он создает 16, 256 или 4096 баз данных в которые он распределяет сайты.

Рекомендации по оптимизации базы данных мультисети

Удалять лишние таблицы у сайтов, например таблицы с префиксами в названиях pmxe, pmxi, nxs. Это таблицы автоматически созданные плагинами WP All Import и WP All Export (которые были нужны только на основном сайте, на подсайтах отключен, но в БД подсайтов таблицы все равно создаются).

Удалить лишние записи в таблицах wp_postmeta, например много полей от плагина SNAP (который на поддоменах не активирован). Потенциально лишние записи (искать надо %Like%): snap

При обновлении плагином WooCommerce Multisite Product Sync поля вновь создаются

Чтобы этого не происходило нужно в файле class-wcmps.php плагина добавить исключения полей для обновления (строка примерно 208):

// мои кастомные поля
unset($postmeta_fields['unit']);			
unset($postmeta_fields['_wpbo_deactive']);
unset($postmeta_fields['_wpbo_override']);
unset($postmeta_fields['_wpbo_step']);		
unset($postmeta_fields['_wpbo_minimum']);
unset($postmeta_fields['_wpbo_maximum']);
unset($postmeta_fields['_wpbo_minimum_oos']);		
unset($postmeta_fields['_wpbo_maximum_oos']);						

// поля SNAP
unset($postmeta_fields['snapIG']);
unset($postmeta_fields['snap_isAutoPosted']);
unset($postmeta_fields['_snap_forceSURL']);		
unset($postmeta_fields['snap_MYURL']);
unset($postmeta_fields['snapEdIT']);
unset($postmeta_fields['snapFB']);		
unset($postmeta_fields['snapVK']);

Либо можно в настройках плагина прописать поля в Exclude Product Meta Data через запятую.

Сайты не помещаются в списке

Когда сайтов в сети становится довольно много, то они перестают помещаться в списке и нижние уже не возможно выбрать. Для решения этой проблемы применяем стили для админки:

add_action( 'admin_footer', 'admin_footer_example' );
function admin_footer_example() {
	echo '<style type="text/css">
	ul#wp-admin-bar-my-sites-list {column-count: 2;}
	ul#wp-admin-bar-my-sites-list .menupop {z-index: unset;}
	</style>';
}

Поделиться в соц. сетях:

  • Комментарии
  • Вложения

Добавить комментарий

Пока нет комментариев. Будь первым!

Проблемы мультисайтовости Проблемы мультисайтовости
Юр. или физ. лицо при оформлении
Рекомендации для васЮр. или физ. лицо при оформленииOpttour.ru
Спасибо! Наш менеджер свяжется с Вами в течении 5 минут.