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

Можно ли активировать плагин только из NETWORK DASHBOARD (если используется Multisite).

В несемитическом режиме, можно активировать нормально.

Solutions Collecting From Web of "Принудительный плагин активируется только из многоузловой сетевой панели"

Вы можете указать, что плагин является «Только в сети» в информации заголовка плагина.

/* Plugin Name: Name of Plugin Plugin URI: Link to plugin information Description: Plugin Description [...] Network: Optional. Specify "Network: true" to require that a plugin is activated across all sites in an installation. This will prevent a plugin from being activated on a single site when Multisite is enabled. */ 

См. get_plugin_data() .

Network: true в плагине без мультисайта позволит плагину работать (быстрый тест на моей локальной установке подтверждает это).

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

 add_filter( 'all_plugins', 'wpse257256_hide_my_plugin' ); function wpse257256_hide_my_plugin( $plugins ) { if ( is_multisite() && ! is_network_admin() ) { unset( $plugins['my-plugin-name/my-plugin-file.php'] ); } return $plugins; } 

Справка

  • Фильтр all_plugins
  • is_multisite()
  • is_network_admin()