Настройщик темы не загружается

5 февр. 2016 г., 14:06:41
Просмотры: 22.1K
Голосов: 2

Я создал новую тему и использую её на нескольких сайтах (мультисайт), но на одном из сайтов предпросмотр в настройщике не загружается (спиннер крутится бесконечно). Загрузка предпросмотра настройщика других тем работает, только моя тема не работает.

В консоли инструментов разработчика Chrome нет никаких ошибок.

Я попробовал несколько вариантов...

  • переименовал тему (папку и внутри style.css)
  • удалил ВСЕ файлы так, что остались только пустой index.php и style.css, содержащий только необходимый комментарий

Но всё равно не загружается, опять же, только на одном из моих мультисайтов.

Как я могу это отладить? Есть какие-нибудь идеи?

2
Комментарии

Иногда ошибка кода, возникающая при AJAX-запросе, не попадает в консоль, а просто возвращается браузеру как результат. Проверьте вкладку Elements в Chrome Developer Tools, чтобы увидеть, не выводится ли ошибка в том месте, где должен отображаться кастомайзер.

David Gard David Gard
25 апр. 2016 г. 17:47:47

Попробуйте отключить антивирусное ПО.

Marcin Lentner Marcin Lentner
15 июл. 2018 г. 21:11:46
Все ответы на вопрос 3
0

Если кастомайзер (live preview) не работает или не загружается и ничего не отображается, попробуйте следующие шаги:

  • Есть ли редиректы на проблемном сайте (перепроверьте и убедитесь, возможно, в ваших плагинах/коде прописан кастомный редирект)?
  • Пока крутится индикатор загрузки, измените любую настройку в кастомайзере и нажмите "СОХРАНИТЬ И ОПУБЛИКОВАТЬ", возможно, простое изменение вызовет появление сайта.
  • Попробуйте отключить плагины.
  • Есть ли у вас кастомные команды EXIT/ DIE/ VAR_DUMP/ ECHO/ SETCOOOKIE/, запрограммированные в основных .php файлах, которые могут остановить загрузку сайта, если не выполнены определенные условия? (например, у меня была похожая проблема, вызванная мной: т.е. IF (isset($_COOKIE["blabla"])) exit;)
  • Попробуйте установить новый WP с другим URL и сначала установить только тему, а затем проверить. Затем импортируйте всё и проверьте снова... посмотрите, есть ли разница.
25 апр. 2016 г. 17:41:35
0

Также убедитесь, что стили родительской темы подключаются до стилей дочерней темы. Добавьте этот код в файл "functions.php" вашей дочерней темы и проверьте, поможет ли это:

// Очистка всех буферов вывода в PHP:
remove_action('shutdown', 'wp_ob_end_flush_all', 1);

// Гарантируем, что дочерняя тема имеет независимую версию и может сбрасывать кеш: http://wordpress.stackexchange.com/a/182023/30783

// Фильтр get_stylesheet_uri() для возврата таблицы стилей родительской темы
add_filter('stylesheet_uri', 'use_parent_theme_stylesheet');

// Подключаем скрипты и стили этой темы (после родительской темы)
add_action('wp_enqueue_scripts', 'my_theme_styles', 20);

function use_parent_theme_stylesheet()
{
    // Используем таблицу стилей родительской темы
    return get_template_directory_uri() . '/style.css';
}

function my_theme_styles()
{
    $themeVersion = wp_get_theme()->get('Version') . rand();

    // Подключаем наш style.css с собственной версией
    wp_enqueue_style('child-theme-style', get_stylesheet_directory_uri() . '/style.css',
    array(), $themeVersion);
}
8 февр. 2017 г. 00:17:58
0

У меня был кастомайзер, который работал нормально в IE, но не в Chrome (в Chrome он просто показывал пустую страницу). Вот что помогло мне решить эту проблему.

Если уточнить, то кастомайзер WordPress был полностью пустым с правой стороны (но только в Chrome). В консоли была ошибка о том, что браузер отказался загружать содержимое IFrame из-за нарушения директивы "Content Security Policy": "frame-ancestors 'self'".

Решение заключалось в добавлении еще одной точки в мой домен для разработки.

То есть, у меня был локальный домен с одной точкой — http://foo_online.local, и возникала эта проблема. После того как я переключился на http://foo.online.local, проблема исчезла.

(Не забудьте обновить "Адрес WordPress (URL)" и "Адрес сайта (URL)" в разделе "Общие настройки" в админке после изменения доменного имени.)

Для справки: я пытался явно задать заголовок "Content Security Policy" (который настраивается в конфигурации веб-сервера), но не смог найти параметр, который бы устроил Chrome. Надеюсь, это поможет.

4 мая 2018 г. 06:47:12