Добрый день!
Не подскажете, что это за ошибка такая?
Fatal error: Cannot redeclare __popular_posts() (previously declared in /home/internet/public_html/wp-content/themes/airplane_theme/functions.php:214) in /home/internet/public_html/wp-content/themes/airplane_theme/functions.php on line 464
Причем, она вылазит, когда я активирую тему на сервере. На локалке всё ОК.
Да, хочу добавить, что в файле functions.php только 237 строк.
Отключите плагины, активируйте тему — что будет?
Отключил плагины, не помогло. Тут скорее всего надо предисторию рассказать. Была у меня на локалхосте база с темами. Всё работало нормально. Потом половина из тем начала глючить, а именно при предварительном просмотре темы был белый экран. Если же тему я активировал, то вместо темы был белый экран и также невозможно было и в админку зайти (по этой же причине). Я создал новую базу и если вместо предварительного скрина темы, которую я скачивал с того или иного сайта с темами вордпресс, я тоже видел белый экран, то я эту тему просто удалял. Один из популярных сайтов с темами я просто занес в черный список!
В данном случае я загрузил в базу 2 темы, которые на локалке работали нормально, но при загрузке на сервер выскакивала такая же ошибка. Я решил взять тему со старой базы, которая нормально работала, но загрузка темы на сервер (даже на 2 разных сервера) опять вызвала эту ошибку (разница в описании ошибки – номер строки в файле functions.php, всё остальное один в один).
Решил проверить комп на вирусы, проверил – всё чисто! На данный момент сижу у разбитого корыта и теряюсь в загадках…
Судя по тексту ошибки, в function.php дважды объявлена одна фунция __popular_posts(). Проверьте так ли это.
Либо на локалке не все «ок», либо function.php на сервере не с локалки, либо плагины не все отключили.
Дык, тогда эта ошибка по идее была бы и на локали, не так ли?
Ф-ция:
прописана один раз во всех опробованных мною темах.
Вот, к примеру, проблема имеется с темой под названием Airplane Theme. Качал отсюда: http://yowordpress.ru/page/18/. Тема прекрасная, раньше никаких проблем не было. Я даже подозреваю, что и у Вас никаких проблем с ней не будет.
Либо на локалке не все «ок», либо function.php на сервере не с локалки, либо плагины не все отключили.[/quote]
Если бы на локалке было бы не всё ок, тогда бы на локалке также была бы ошибка, так же?
Вообще-то в объявленной ошибке не function.php, а functions.php… И этот файл относится только к данной теме. Плагины отключал все. Скорее всего они к этой проблеме не имеют отношения.
Либо на локалке не все «ок», либо function.php на сервере не с локалки, либо плагины не все отключили.[/quote]
Если бы на локалке было бы не всё ок, тогда бы на локалке также была бы ошибка, так же?
Вообще-то в объявленной ошибке не function.php, а functions.php… И этот файл относится только к данной теме. Плагины отключал все. Скорее всего они к этой проблеме не имеют отношения.[/quote]
ЗЫ: я имел ввиду – не "к данной теме", а "к одной конкретной теме, активной в данный момент"…
Все верно — functions.php. Это я случайно из предыдущего поста с опечаткой скопировал.
В functions.php этой темы нет такой ф-ции. Покажите «ваш» текст ошибки.
В functions.php этой темы нет такой ф-ции. Покажите «ваш» текст ошибки.[/quote]
Вот текст ошибки при активации темы:
Может быть имеет значение такая деталь. После активации темы эта надпись имеется как на странице самого сайта, так и на странице админки. И возврат в админку или к нормальному виду сайта возможен только после удаления этой темы через консоль фтп. Тогда восстанавливается дефолтная тема.
Если поможет, могу дать доступ в админку тестового сайта.
Не надо. Презалейте лучше WP на тестовом сайте.
Скачал по Вашей ссылке. Строк 24. Откуда у Вас их 237?
Скорее всего подхватили какой-то вирус. Попробуйте залить по чистой WordPress, без плагинов и прочих шаблонов. Если ошибка исчезнет, то загрузите файлы шаблона по новой, но обязательно просмотрите тексты файлов, поскольку червь может прописываться в самом низу, отделяясь от полехного текста множеством переносов строки. После этого еще раз активируйте шаблон. И если выскочит сообщение, то проверьте functions.php шаблона на сервере: загрузите на локальный компьютер и сравните с исходным.
Ну вот файл: http://slil.ru/29529867
Ну вот файл: http://slil.ru/29529867[/quote]
Скачайте тему Airplane Theme по Вашей же ссылке снова. Старую удалите.
MAX, Help Desk, да, действительно помогло и functions.php имеет 24 строки. Сейчас попробую на сервер залить.)
Вы проверьте все файлы во всех шаблонах. Сия гадость автоматом прописывается в файлы шаблонов при активации темы или входе в админку.
А что именно искать? У меня несколько десятков шаблонов. Перебирать все файлы?
А что именно искать? У меня несколько десятков шаблонов. Перебирать все файлы?[/quote]
Вот эта часть и до конца файла по-идее и прописывается к каждому шаблону.
Ага, спасибо! Прописано во всех темах…. А вообще, я так понял мне надо комп проверить на наличие вирусов?
Уже functions.php чистый и всё равно ошибка:
Строк в файле всего – 24, здесь же на какую-то 54-ю указывает.
Вы перезалили WP по новой?
Это я уже пробовал у товарища на сервере. Тема для него. Я скажу, чтоб перезалил. А в каких файлах WP может прописываться код вируса?
Судя по коду вируса вначале нужно полностью его удалить и лишь после этого запускать WordPress. Прописывается во всех одномименных файлах. Например при загрузке админ-панели автоматом запускается файл functions.php шаблона. Значит вирус пропишется во всех таких же файлах других шаблонов. Если запускается какой-то другой файл, например header.php, то пропишется в аналогичных остальных шаблонов и т.д. Я бы рекомендовал переименовать старые каталоги WordPress на сервере. После этого залил бы чистый WordPress. После этого на локальном компе проверил все файлы всех шаблонов и уже после этого загружал бы на сервер.
ps Детально не рассматривал код, там жестко прописан какталог themes, но по идее легко можно залезать и в другие каталоги. Чтобы точнее определить нужно загрузить на локальный комп все файлы с сервера и через поиск вхождения текста (_check_isactive_widget) определить зараженные файлы. В Total Commander это Alt+F7.
Что Вы подразумеваете под старыми каталогами WordPress?
Я вчера проверял – код прописан во всех файлах functions.php всех тем.
Все файлы – имеется ввиду не только файлы тем, но и все файлы сборки WordPress? Но если мы будем заливать WordPress по новой, зачем проверять старые файлы? Или я что-то неправильно понял?
Ребята, простите, что несколько лет спустя… У меня сейчас такая же проблема появилась, как описано здесь. Как лечить?
У тебя тоже фатал еррор??? redeclare __popular_posts() ???
Скорей всего или плагина нет которого хочет эта функция или же просто надо отключить этот плагин и найти где именно есть запись с redeclare __popular_posts() .