@ashfedor

Ошибка при переходе на php8 WordPress, Как исправить?

Сайт тестовый! Сначала собирал на Опенсервере и там уже стоял PHP8.1
Все хорошо работало.
Закинул на сервер и там получил белое полотно с ошибкой.
Подключил PHP7.4 все норм работает,
Поставил плагин Query Monitor чтоб смотреть ошибки
Включил дебаг в конфиге.
Подключил опять PHP8.1
Проверил mysqli -включен (многие на него жалуются)
выдало
Fatal error: Uncaught Error: syntax error, unexpected token "else"
in /home/ashtest/public_html/wp-content/themes/ash-panel-wp/files/inc/ash-catalog/front/offer-slider.php on line 102

Call stack:

require_once()
wp-content/themes/ash-panel-wp/functions.php:36
include()
wp-settings.php:591
require_once()
wp-config.php:90
require_once()
wp-load.php:50
require_once()
wp-blog-header.php:13
require()
index.php:17
Query Monitor

Посмотрел сам файл ffer-slider.php
там ничего такого нет, прилаживаю на всякий случай, простой if else с перебором нутри картинок для слайдера
<?php

function ash_offer_slider()
{
  ?>
  <?php
  $images = get_field('offer_gallery')??'';

  ?>
  <?
  if ($images): ?> 
    <?
    if (get_field('check_video')):
      $img = wp_get_attachment_image_url(get_field('video_preview'), 'medium')??'';

      ?>

    <?
    endif; ?>
    <div class="swiper offer-slider">

      <div class="swiper-wrapper">
        <div class="swiper-slide offer-slider__item">
          <?
          the_post_thumbnail('medium') ?>
        </div>
        <?php
        foreach ($images as $image): ?>
          <div class="swiper-slide offer-slider__item">
            <img src="<?php
            echo esc_url($image['url']); ?>" alt="<?php
            echo esc_attr($image['alt']); ?>" loading="lazy"/>
          </div>
          <?
          if (get_field('check_video')): ?>
            <div class="swiper-slide offer-slider__item offer-slider__item-video ">

            <span class="button-video open_modal" rel="offer_video">
              <svg x="0" y="0" viewBox="0 0 152 152" style="enable-background:new 0 0 512 512"
                   xml:space="preserve" class=""><g><g data-name="Layer 2"><g data-name="02.YouTube"><path
                          fill="#ffffff"
                          d="M100.87 47.41H51.13A15.13 15.13 0 0 0 36 62.55v26.9a15.13 15.13 0 0 0 15.13 15.14h49.74A15.13 15.13 0 0 0 116 89.45v-26.9a15.13 15.13 0 0 0-15.13-15.14zM65.46 88.26V63.74L86.54 76z"
                          data-original="#ffffff" class=""></path></g></g></g></svg>
            </span>
              <img src="<?= $img ?>" alt="video" loading="lazy" height="80">
            </div>

          <?
          endif; ?>
        <?php
        endforeach; ?>

      </div>
      <div class="post-navigation">
         <span class="post-navigation__prev">
            <svg x="0" y="0"
                 viewBox="0 0 240.823 240.823" style="enable-background:new 0 0 512 512" xml:space="preserve"><g><path
                    d="M57.633 129.007 165.93 237.268c4.752 4.74 12.451 4.74 17.215 0 4.752-4.74 4.752-12.439 0-17.179l-99.707-99.671 99.695-99.671c4.752-4.74 4.752-12.439 0-17.191-4.752-4.74-12.463-4.74-17.215 0L57.621 111.816c-4.679 4.691-4.679 12.511.012 17.191z"
                ></path></g></svg>
         </span>
        <span class="post-navigation__next">
     <svg x="0" y="0"
          viewBox="0 0 240.823 240.823" style="enable-background:new 0 0 512 512" xml:space="preserve"><g><path
             d="M183.189 111.816 74.892 3.555c-4.752-4.74-12.451-4.74-17.215 0-4.752 4.74-4.752 12.439 0 17.179l99.707 99.671-99.695 99.671c-4.752 4.74-4.752 12.439 0 17.191 4.752 4.74 12.463 4.74 17.215 0l108.297-108.261c4.68-4.691 4.68-12.511-.012-17.19z"
         ></path></g></svg>
    </span>
      </div>

    </div>
    <div class="swiper offer-slider__nav">
      <div class="swiper-wrapper">
        <?
        the_post_thumbnail('thumbnail') ?>

        <?php
        foreach ($images as $image): ?>
          <div class="swiper-slide offer-slider__nav-item">
            <img src="<?php
            echo esc_url($image['sizes']['thumbnail']); ?>" alt="<?php
            echo esc_attr($image['alt']); ?>" loading="lazy"/>
          </div>
        <?php
        endforeach; ?>
        <?
        if (get_field('check_video')): ?>
          <div class="swiper-slide offer-slider__nav-item offer-slider__nav-video ">
             <span class="button-video open_video" rel="offer_video">
              <svg x="0" y="0" viewBox="0 0 152 152" style="enable-background:new 0 0 512 512"
                   xml:space="preserve" class=""><g><g data-name="Layer 2"><g data-name="02.YouTube"><path
                          fill="#ffffff"
                          d="M100.87 47.41H51.13A15.13 15.13 0 0 0 36 62.55v26.9a15.13 15.13 0 0 0 15.13 15.14h49.74A15.13 15.13 0 0 0 116 89.45v-26.9a15.13 15.13 0 0 0-15.13-15.14zM65.46 88.26V63.74L86.54 76z"
                          data-original="#ffffff" class=""></path></g></g></g></svg>
            </span>
            <img src="<?= $img ?>" alt="video" loading="lazy">
          </div>
        <?
        endif; ?>

      </div>
    </div>
  <?php
  else: ?>
    <?php
    the_post_thumbnail('medium', array('class' => 'offer-single__thumbnail')) ?>
  <?php
  endif;
}


На всякий случай вот php.ini https://ashtest.pp.ua/ini.php
Я думаю что что то не включено на сервере т.к. на Опенсервере все работало
Есть у кого то какие предложения?
  • Вопрос задан
  • 156 просмотров
Решения вопроса 2
@maksam07
short_open_tag

Это из разряда ошибок, где php не может корректно сообщить о проблеме и нужно изучать сам код.
Ответ написан
@ashfedor Автор вопроса
Напишу на всякий случай может кому-то пригодится.
Все оказалось проще чем обычно!)
На этом сервере в 8 версии не поддерживается краткое <?
нужно писать полностью <?php
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы