Проверить используемые плагины в сети мультсайта.

Вопрос или проблема

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

Вопрос в том, что плагины в настоящее время деактивированы на уровне главной сети. Интересно, есть ли какой-то быстрый способ проверить, активны ли они по отдельности на сайтах в сети?

Проведя несколько выборочных проверок, я вижу деактивированный плагин как опцию на некоторых из суб-сайтов, с возможностью активировать их по отдельности, я полагаю, активация на этом уровне не повлияет на сеть?

Всего около 50 сайтов, поэтому проверять каждый вручную не оптимально.

Спасибо

Хотя вопрос достаточно старый, я хотел бы поделиться с вами небольшим кодом.

Вот как проверить, активирован ли плагин по отдельности для некоторых сайтов:

$sites = get_sites();
foreach( $sites as $site ) {
    switch_to_blog( $site->blog_id );
    
    if( in_array( 'YOUR PLUGIN TO CHECK', (array) get_option( 'active_plugins', array() ) ) ) {
        // да, он активен для $site->blog_id
    }
    
    restore_current_blog();
}

Этот код полностью функционален, вам нужно лишь заменить ‘YOUR PLUGIN TO CHECK’ на фактический плагин, например woocommerce/woocommerce.php.

Если вам нужны более подробные сведения об этом коде, вы можете найти их в этом учебнике: https://rudrastyh.com/wordpress/check-if-plugin-is-active-in-multisite.html

Чтобы проверить, активен ли плагин на отдельных сайтах в сети WordPress Multisite, вы можете использовать функцию is_plugin_active_for_network. Эта функция принимает в качестве аргумента путь к файлу плагина и возвращает true, если плагин активен в сети, и false, если нет.

Вот пример того, как вы можете использовать эту функцию, чтобы проверить, активен ли плагин на отдельных сайтах в вашей сети:

wp plugin list --status=active --network

Это покажет вам список всех активных плагинов в сети, включая те, которые активны на отдельных сайтах сети.

Ответ или решение

Понимание и управление плагинами в сети MultiSite WordPress может быть вызовом, особенно для новичков в этой области. Когда вам необходимо удалить плагины в сетевом масштабе, важно убедиться, что они не активированы на отдельных сайтах в сети.

Проблема

Вы унаследовали сеть MultiSite WordPress и получили задачу удалить несколько плагинов на уровне всей сети. Вопрос в том, как быстро проверить, активированы ли эти плагины на отдельных сайтах, особенно если они деактивированы на уровне сети.

Решение

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

Код для проверки плагинов

$sites = get_sites(); // Получаем все сайты в сети
foreach( $sites as $site ) {
    switch_to_blog( $site->blog_id ); // Переключаемся на текущий сайт

    // Проверяем, активирован ли плагин
    if( in_array( 'YOUR PLUGIN TO CHECK', (array) get_option( 'active_plugins', array() ) ) ) {
        // Плагин активен на $site->blog_id
    }

    restore_current_blog(); // Восстанавливаем контекст основного блога
}

Замените 'YOUR PLUGIN TO CHECK' на путь к вашему конкретному плагину, например, woocommerce/woocommerce.php.

Этот код позволяет обойти все сайты сети и проверить, активированы ли интересующие вас плагины. В результате вы получите информацию о том, на каких сайтах плагины все ещё активны, и сможете принять дальнейшие меры для их деактивации.

Дополнительные инструменты

Для изучения активности плагинов можно также использовать WP-CLI команду:

wp plugin list --status=active --network

Эта команда выводит все активные плагины на уровне сети, включая те, которые активны на отдельных сайтах.

Заключение

Управление плагинами в сети MultiSite требует систематического подхода и автоматизации. Использование кода и инструментов, таких как WP-CLI, может существенно облегчить задачу и дать уверенность в том, что плагины корректно управляются и деактивируются в соответствии с вашими требованиями.

Этот простейший скрипт позволяет улучшить вашу работу с MultiSite, используя автоматизацию и минимизируя ручные ошибки.

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

Капча загружается...