Intereting Posts
Показать подкатегорию Описание Показывать предупреждение о валидации, если не добавлено выдержки Как получить доступ к функции извне класса в этом классе в плагине WP? Как захватить все типы приложений, но изображений? Как настроить внук post_parent с помощью wp_list_pages Повторяющиеся задания Cron Использование wp_next_scheduled / wp_schedule_event Предупреждение: Отсутствует аргумент 2 для фильтра widget_title Является ли хорошей практикой импорт / экспорт блога, чтобы протестировать редизайн? Анализ после-> ID в включенном файле плагина Пользовательское мета-поле не дает мне числового значения название и категория WordPress Ошибка контура перенаправления после входа в систему из персонализированного сообщения типа post Как я могу скрыть, что я использую WordPress (с общим кэшем W3) Можно ли изменить шаблон списка избранных плагинов Elated таким образом, чтобы он не противоречил будущим обновлениям плагина? Какой самый простой способ добавить дополнительные параметры в опции темы из двадцати одиннадцати тем?

wp-load Без загрузки плагинов

Я создаю «панель управления» для своего сервера и хотел бы использовать мою пользовательскую базу WordPress для управления функциями входа в систему, а также возможность показывать некоторые сообщения.

Я установил некоторые определения и включил wp-load:

define( 'COOKIE_DOMAIN', false ); define( 'DISABLE_WP_CRON', true ); define( 'WP_USE_THEMES', false ); define( 'WP_CACHE', false ); // define( 'SHORTINIT', true ); include( '/home/getyou/www/wp-load.php' ); 

С определением shortinit я могу использовать некоторые функции, однако user функциональность терпит неудачу, без этого я замечаю, что мой w3 Total Cache кэширует все.

Есть ли способ, которым я могу продолжать использовать все функции wordpress, но, возможно, выгрузить или отключить общий кэш w3 для этого внешнего сайта?

РЕДАКТИРОВАТЬ

Добавлен mu-plugin со следующим кодом, чтобы отключить все плагины на основе определения MEDINIT

 if ( defined( 'MEDINIT ') && MEDINIT ) { add_filter( 'option_active_plugins', function ( $plugins ) { $plug_arr = get_plugins(); foreach( $plug_arr as $k => $v){ unset( $plugins[$k] ); } return $plugins; } ); } 

Однако, когда я вызываю var_dump( get_option('active_plugins') ); он по-прежнему загружает все плагины.

Вам нужно будет поместить что-то вроде этого в файл .php любого имени в вашей плагине обязательных подключений ( /wp-content/mu-plugins/ ), чтобы он загружался перед всеми плагинами, чтобы вы могли использовать его для фильтрации плагина загрузка …

 <?php if (defined('SHORTINIT') && SHORTINIT) { add_filter('option_active_plugins', 'shortinit_plugins_filter'); function shortinit_plugins_filter($plugins) { $noloadplugins = array('w3-total-cache'); foreach ($plugins as $i => $plugin) { if (in_array($plugin, $noloadplugins)) {unset($plugins[$i]);} } return $plugins; } } 

В качестве альтернативы вручную включайте любые функциональные файлы, необходимые для работы.

ОБНОВЛЕНИЕ для Multisite

Вам нужно будет использовать другой фильтр на многопользовательском режиме, что-то вроде этого должно работать, например. для блога ID 2 …

 <?php if (defined('SHORTINIT') && SHORTINIT) { add_filter('site_option_active_plugins', 'shortinit_site_plugins_filter', 10, 3); function shortinit_site_plugins_filter($plugins, $option, $network_id) { if ($network_id == 2) { $noloadplugins = array('w3-total-cache'); foreach ($plugins as $i => $plugin) { if (in_array($plugin, $noloadplugins)) {unset($plugins[$i]);} } } return $plugins; } } 

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

 <?php if (defined('SHORTINIT') && SHORTINIT) { add_filter('option_active_sitewide_plugins', 'shortinit_network_plugins_filter'); function shortinit_network_plugins_filter($plugins) { if (get_current_blog() == 2) { $noloadplugins = array('w3-total-cache'); foreach ($plugins as $i => $plugin) { if (in_array($plugin, $noloadplugins)) {unset($plugins[$i]);} } } return $plugins; } }