Я работал с настройками вордпресса, в этот момент сервер упал, после его запуска я постоянно вижу эти предупреждения
Warning: array_keys() [function.array-keys]: The first argument should be an array in /public_html/wp-includes/widgets.php on line 686 Warning: Invalid argument supplied for foreach() in /public_html/wp-includes/widgets.php on line 686
и бока с кодировками случились, перевод и контент стали отображаться в неправильной кодировке…
сайт http://photoshop-cs-photo.ru
в админке тоже предупреждения выводятся… любой переход на любую страницу вызывают следующее
Warning: array_keys() [function.array-keys]: The first argument should be an array in /public_html/wp-includes/widgets.php on line 686 Warning: Invalid argument supplied for foreach() in /public_html/wp-includes/widgets.php on line 686 Warning: Cannot modify header information - headers already sent by (output started at /public_html/wp-includes/widgets.php:686) in /public_html/wp-includes/pluggable.php on line 770
Так как ни каких изменений не происходило в указанных предупреждениями файлах, я подумал что что-то с БД не так… поделитесь опытом? 🙂
Cannot modify header information — вот эти слова забейте в поиск по форуму, может вся котовасия из-за BOM
Я тоже так подумал.
столкнулся с такой же проблемой:
в публичной части сайта:
[quote]Warning: array_keys() [function.array-keys]: The first argument should be an array in /home1/***/wp-includes/widgets.php on line 686
Warning: Invalid argument supplied for foreach() in /home1/***/wp-includes/widgets.php on line 686[/quote]
При попылке войти в админку:
[quote]Warning: array_keys() [function.array-keys]: The first argument should be an array in /home1/***/wp-includes/widgets.php on line 686
Warning: Invalid argument supplied for foreach() in /home1/***/wp-includes/widgets.php on line 686
Warning: Cannot modify header information – headers already sent by (output started at /home1/***/wp-includes/widgets.php:686) in /home1/***/wp-includes/pluggable.php on line 770[/quote]
поиск оп сети выявил только рспространенность этой проблемы (тучу сайтов с такими же ошибками), но не решение.
прошу помощи!
п.с.: с позволения общественности, дублирую вопрос на форуме mywordpress.ru с более разумным названием темы.
хм, может быть попробовать открыть файлик widgets.php в Notepad++ и пересохранить его в кодироффке UTF-8 без BOM ?
… если не поможет, будем дальше глядеть!
и этот до кучи проверь в какой кодироффке pluggable.php
да и вообще, все файлы должны быть в UTF-8 без BOM … так что и их проверь!
чорд! все файлы в кодировке ANSI!
все!
есть ли способы пакетной конвертации кодировок текстовых файлов? 🙂
… есть!
Сейчас покажу где: http://forum.maxsite.org/viewtopic.php?id=6213
только для начала надо узнать, у тебя что за движок-то установлен? 🙂
толькочто смотрел – распаковал архив с WP 2,6,3 от Кактуса (ставил уже, без проблем) – там файло в ANSI…
сконвертил widgets.php и pluggable.php в UTF-8 – количество ошибок увеличилось, упоминался файл bookmark.php 🙂
сконвертил его, теперь:
то есть, проблема как была, так и осталась.
Неужели так никто не знает в чем проблема? У меня таже проблема – точно с такими же ошибками до цифры.
Произошла в момент, когда я экспортировал БД в файл, перенес на новый хостинг все файлы двигателя со старого, а потом импортировал ранее Экспортированную БД.
Также изменилась кодировка.
Что старый что новый хостинг – HC.RU
Файлы надо заливать в бинарном режиме.
И в бызе тоже кодировку таблиц желательно UTF-8 поставить
Ктому же могут быть проблемы при сохранении в файл. Рекомендую для переноса пользоватся специализироваными приложениями.
Примерно такая хренотень вылезла тоже при падении базы.
Причину нашел в базе –
смотрим что в _options запись widget_rss
не мудрствуя впихнул туда a:0:{}
Просто уточни что находится в widgets.php на строке 686
соответственно и смотри в базе нужную запись обвалившуюся.
у меня таже проблема ! кто-то может пошагово росказать как ее решить ?
проблемы с сериалайзом
Единственная идея попробовать не дампить базу, а напрямую скопировать по средствам менеджера, например SQLyog, или что то подобное
и помоему сереалайз в разных версия php отличается (точно не уверен).
уже розобрался ! значит чтоб устраить нужно зайти в wp_options и удалить там widget_text