Задать вопрос

После переезда на новый хостинг перестал работать сайт?

Сайт на WordPress. Сделан давно. Работает на виртуальном хостинге. Установлен PHP Version 7.4.33.
Готовится переезд на VDS сервер. Установил PHP 7.4, Apache 2. Загрузил файлы по, создал БД. Пустой WP ставится и работает. Импортирую БД, копирую файлы и сайт не работает. В логах apache2 одна ошибка:
PHP Parse error: syntax error, unexpected '}', expecting end of file in /var/www/html/wp-content/themes/ntm/functions.php on line 114

Файл functions.php не изменялся
function wpse45436_admin_posts_filter_restrict_manage_posts(){
    $type = 'tv';
    if (isset($_GET['post_type'])) {
        $type = $_GET['post_type'];
    }

    //only add filter to post type you want
    if ('tv' == $type){?>
        <input type="text" placeholder="Дата выпуска" name="day" value="<?=isset($_GET['day'])? $_GET['day']:''?>">
        <?php //114 строка. Здесь ругается.
    } //115 строка
}


Ошибка возникает в следующем месте:
<?php //114 строка. Здесь ругается.
    } //115 строка


В чём может быть проблема?
  • Вопрос задан
  • 375 просмотров
Подписаться 1 Простой 5 комментариев
Пригласить эксперта
Ответы на вопрос 4
Adamos
@Adamos
Старый сайт вдруг сломался при переезде с хостинга на свой сервер?
Скорее всего - настроенный по дефолту php.ini с выключенным short_open_tag.
Ответ написан
ipatiev
@ipatiev Куратор тега PHP
Потомок старинного рода Ипатьевых-Колотитьевых
В чём проблема, вам РНР говорит человеческим голосом: ошибка синтаксиса. У вас лишняя } в 114 строке.
Надо смотреть файл целиком. Причём не тот, в котором скобка на 115 строке, а тот, в котором на 114.
Проверяйте файл.

А вся эта лирика - версия РНР, хостинг, "файл не менялся" не имеет к проблеме никакого отношения.
Ответ написан
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
Просто замените на:
function wpse45436_admin_posts_filter_restrict_manage_posts(){
    $type = isset($_GET['post_type']) ? $_GET['post_type'] : 'tv';

    //only add filter to post type you want
    if ($type == 'tv'){
        echo "        <input type=\"text\" placeholder=\"Дата выпуска\" name=\"day\" value=\"".(isset($_GET['day'])? $_GET['day']:'')."\">";
    }
}
Ответ написан
@Ej4k Автор вопроса
Здравствуйте. Всем спасибо за помощь!
Как и говорили пришлось во всех файлах темы заменить
<? на <?php и <?= на <?php echo
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы