У меня есть сайт с огромным меню. Пожалуйста, поймите, это требования клиентов, чтобы меню было таким же большим, как оно есть, поэтому нет, это нельзя сделать другим способом.
Сайт работает через Cloudflare, поэтому у нас установлен плагин Cloudflare дляочистить кеш при обновлении.
Я обнаружил, что сохранение меню в admin вызывает ошибку 502 из-за тайм-аута сценария сохранения. Мы обнаружили, что виновником является плагин Cloudflare, выполняющий запросы Curl для очистки, очень много раз из-за размера меню.
То, что я пытаюсь сделать, это отключить плагин, когда меню сохраняется,поэтому я создал плагин Must Use с исходным кодом, чтобы выполнить это ... однако, он не работает, и процессы Curl по очистке плагина все еще запускаются.
ПРИМЕЧАНИЕ: php input max, время ожидания скрипта, ограничения памяти были сильно увеличены: 5000, 5 минут, 1024M соответственно. Cloudflare имеет строгий тайм-аут, так что на самом деле время ожидания истекает раньше, чем сценарий ... единственная причина, по которой я знаю, что происходит, это то, что он протестирован и зарегистрирован в промежуточной области.
<?php
/*
Plugin Name: Disable Plugins in Admin pages
Plugin URI: http://www.example.com
Description: Disable plugins in wordpress admin pages
Author: Kevin Pirnie
Version: 0.0.1
*/
// wait until the plugins are active
add_filter( 'option_active_plugins', function( $_opt, $_opt_name ) {
// plugins to remove
$_to_remove = array(
'cloudflare/cloudflare.php',
);
// hold our new options
$_new_opts = $_opt;
// remove the plugin from the array
foreach ( $_opt as $_k => $_v ) {
if ( in_array( $_v, $_to_remove ) ) {
unset( $_new_opts[$_k] );
}
}
// we only need to do this on these pages
if( $_SERVER['PHP_SELF'] == '/wp-admin/nav-menus.php' ) {
$_opt = $_new_opts;
}
// return the array
return $_opt;
}, 999, 2 );
Как я могу исправитьэто так плагин не запускается, когда меню сохраняет?