1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.

WordPress: ошибка при входе на сайт

Тема в разделе "Программирование", создана пользователем СпетровичС, 23.08.24.

  1. СпетровичС

    СпетровичС Новичок

    3
    0
    Уважаемые!При входе на сайт выскакивает сообщение "Warning: Invalid argument supplied for foreach() in /var/www/u0357735/data/www/gl.spb.ru/wp-content/plugins/solazu-unyson/framework/includes/option-types/typography-v2/class-slz-option-type-typography-v2.php on line 145

    Может ли кто помочь?Строка кода(145) с восклицательными знаками.

    public function get_google_font( $font ) {
    $fonts = $this->get_fonts();

    foreach ( $fonts['google']['items'] as $g_font ) { !!!!!!!!!!!!!!!!!!!!!!!!!
    if ( $font === $g_font['family'] ) {
    return $g_font;
    }
    }

    return false;
     
  2. Pashtet

    Pashtet Активный участник

    37.467
    5.290
    Ошибка, которую вы видите, возникает из-за того, что в коде предполагается, что переменная $fonts['google']['items'] является массивом, но на самом деле это может быть null или не инициализированное значение. Чтобы исправить это, нужно добавить проверку перед использованием массива в foreach.

    Вот как можно исправить этот код:

    php
    public function get_google_font( $font ) {
    $fonts = $this->get_fonts();

    // Добавляем проверку на существование и тип данных
    if (isset($fonts['google']['items']) && is_array($fonts['google']['items'])) {
    foreach ( $fonts['google']['items'] as $g_font ) {
    if ( $font === $g_font['family'] ) {
    return $g_font;
    }
    }
    }

    return false;
    }

    Объяснение изменений:
    1. isset($fonts['google']['items']): Эта проверка гарантирует, что ключ items существует в массиве $fonts['google'].
    2. is_array($fonts['google']['items']): Эта проверка гарантирует, что значение $fonts['google']['items'] является массивом. Если это не массив, цикл foreach не будет выполняться, что предотвратит ошибку.
    Эти изменения должны устранить предупреждение и сделать код более устойчивым к подобным проблемам.
     
  3. СпетровичС

    СпетровичС Новичок

    3
    0
    Благодарю!
    Как я понял, надо вставить эти две новые строки в скрипт и посмотреть. Попробую.
    А Вы можете предположить из-за чего это произошло на фоне " я ничего не менял!"?
     
  4. Bern

    Bern Участник

    214
    13
    Ни чего себе тут заморочки!

    Паштет, откуда ты знаешь эту хреноту?
     
  5. Pashtet

    Pashtet Активный участник

    37.467
    5.290
    Причин может быть масса.
    Ты главное попробуй исправить, как описано выше. И дай знать.

    ;)
     
  6. sema

    sema Активный участник

    16.911
    1.928
    чатгпт - видно же
    $fonts = $this->get_fonts(); шрифты не приходят видимо.
     
  7. СпетровичС

    СпетровичС Новичок

    3
    0
    После двух тех строк вышла новая ошибка Warning: require(/var/www/u0357735/data/www/gl.spb.ru/wp-content/plugins/solazu-unyson/framework/includes/option-types/typography-v2/class-slz-option-type-typography-v2.php): failed to open stream: No such file or directory in /var/www/u0357735/data/www/gl.spb.ru/wp-content/plugins/solazu-unyson/framework/includes/option-types/init.php on line 34
    И сайт не грузится.
    Строка на которую ссылается первая из этого скрипта
    wp_localize_script(
    'slz-option-' . $this->get_type(),
    'slz_typography_v2_fonts',
    $this->get_fonts()


    была такая мысль, но почему только одному сайту?......
     
  8. sema

    sema Активный участник

    16.911
    1.928
    @СпетровичС, пхпшник нужен. или гугли, если проблема массовая можно найти решение.
     
  9. Дмитрий Н

    Дмитрий Н Активный участник

    2.202
    432
    @E13, ты куды пропал? Твоя тема :)