В один совсем не прекрасный момент админка Wordpress при деактивизации плагина начала вдруг сбрасывать вместо требуемого - соседний. Работать с такой "особенностью", понятное дело, совершенно невозможно - пришлось разбираться.
Дело оказалось в том что в массив активных плагинов, хранящийся в базе в сериализованом виде, почему-то оказался с пропуском одного индекса - 11,12,14 А логика удаления рассчитана на обычный числовой индекс, а не на ассоциативный PHP-шный. Пришлось переделывать
Файл /wp-admin/includes/plugin.php, функция deactivate_plugins
было
if ( false !== $key ) {
$do_blog = true;
array_splice( $current, $key, 1 );
}
Надо array_splice( $current, $key, 1 ); заменить на unset( $current[ $key ] );
а для восстановления последовательности после цикла, перед
if ( $do_blog )
update_option('active_plugins', $current);
добавить нечто вроде
$i=0; $new_current=array();
foreach ( (array) $current as $cur ) $new_current[$i++]=$cur;
$current=$new_current;
И все станет хорошо
Upd. Бага присутствует и в свежем билде 3.1, посему занесена в трекер Вордпресса. Как говорится, будем посмотреть.
Отзыв: 0 0
Блог http://luaz967.ru С Рождеством !=)
Merry Christmas and a Happy New Year!
Отзыв: 0 0
Спасибо!
Отзыв: 0 0
Отличный блог !
Вы разрешите разместить некоторые ваши статьи на моём блоге с указанием ссылки источника?
Отзыв: 0 0
При условии индивидуального согласования статей.
Отзыв: 0 0
У вас в RSS картинки не показывает...
Отзыв: 1 0
Если и картинки по RSS отдавать - зачем народу вообще на сайт заходить?