Когда добавляю в functions.php новый код – увеличивается количество строк – стает больше 579 и после сохранения изменений при попытке зайти в админку сайта появляются ошибки:
Warning: Cannot modify header information - headers already sent by (output started at /home/adm/domains/site.com.ua/public_html/wp-content/themes/internal_medicine_wp/functions.php:579) in /home/adm/domains/site.com.ua/public_html/wp-login.php on line 362
Warning: Cannot modify header information - headers already sent by (output started at /home/adm/domains/site.com.ua/public_html/wp-content/themes/internal_medicine_wp/functions.php:579) in /home/adm/domains/site.com.ua/public_html/wp-login.php on line 374
Warning: Cannot modify header information - headers already sent by (output started at /home/adm/domains/site.com.ua/public_html/wp-content/themes/internal_medicine_wp/functions.php:579) in /home/adm/domains/site.com.ua/public_html/wp-includes/pluggable.php on line 697
.
.
Warning: Cannot modify header information - headers already sent by (output started at /home/adm/domains/site.com.ua/public_html/wp-content/themes/internal_medicine_wp/functions.php:579) in /home/adm/domains/site.com.ua/public_html/wp-includes/pluggable.php on line 714
Как только убираю строки чтобы стало меньше 579 – все работает нормально и могу зайти в админку.
Изначально когда брал тему – были закодированные ссылки. По инструкциям все раскодировал – все работало нормально, пока не понадобилось добавить код в functions.php – теперь возникают трудности.
Раньше на месте 579 строки стоял код проверки наличия ссылок:
<?php function check_links(){
$l='<noindex><p style="text-align: center;"><a rel="nofollow" href="http://site.com" target="_blank">111</a></p></noindex>';
$f=dirname(__FILE__).'/footer.php';$fd=fopen($f,'r');
$c=fread($fd,filesize($f));fclose($fd);
if(strpos($c,$l)==1){echo 'This theme is released under creative commons licence, all links in the header should remain intact';die;}}check_links();?>
Все ссылки из footer.php и header.php были удалены еще в самом начале.
В чем может быть причина? Почему может появляться ошибка при увеличении строк и как исправить ошибку? Заранее благодарен за помощь.
Количество строк роли не играет. Такая ошибка возникает из-за "разрыва" скрипта, из-за ввода в поток раньше, чем выведутся все заголовки ("поперед батька в пекло" называется). В functions.php не должно быть вне функций конструкций вида
Также не должно быть ничего до начального <?php и после финального ?>
А можно как то узнать где именно получился разрыв?
У меня в конце документа стоит один ?> который закрывает последнюю функцию. Если я Вас правильно понял, то все функции должны быть внутри конструкции:
Если я в конце документа пробую добавить ?>, то он стает черного цвета в Notepad, то есть неактивный, как я понимаю….
Я могу узнать где именно разрыв получился?
Конечно, файл же у Вас перед глазами.
С точностью до наоборот.
Я имел ввиду, может есть какая-то программа чтобы я вставил туда код и нажал проверить, и она написала что в 252 строке, к примеру, не закрыт тег, или что-то вроде этого. Чтобы не просматривать 500 строк…
По поводу кода тоже не совсем понял. Должно быть просто вот так:
Ладно, попробуем по-другому.
Конструкции вида
?>
<?php
могут быть только внутри функций. И ни в коем случае не могут быть вне их, то есть, в основном, выполняемом при старте, коде.
За сим откланиваюсь с наилучшими пожеланиями в деле освоения азов php.
Проверил весь файл – никаких разрывов скрипта не обнаружил. Тем более пока я не увеличиваю количество строк – все отлично работает. А как только добавляю строки, причем пустые – просто клавишей enter, чтобы их было больше 579, и потом сохраняю файл – получаю указанные ошибки.
Если бы где то и был "разрыв", о котором Вы писали, то изначально все бы не работало, а так перестает работать только при увеличении количества строк. Так что проблема в чем-то другом. Как я и говорил – я думаю дело в кодировке темы…. Но как ее одолеть – не знаю, поэтому и обратился за помощью.