Настройщик темы не загружается
Я создал новую тему и использую её на нескольких сайтах (мультисайт), но на одном из сайтов предпросмотр в настройщике не загружается (спиннер крутится бесконечно). Загрузка предпросмотра настройщика других тем работает, только моя тема не работает.
В консоли инструментов разработчика Chrome нет никаких ошибок.
Я попробовал несколько вариантов...
- переименовал тему (папку и внутри style.css)
- удалил ВСЕ файлы так, что остались только пустой index.php и style.css, содержащий только необходимый комментарий
Но всё равно не загружается, опять же, только на одном из моих мультисайтов.
Как я могу это отладить? Есть какие-нибудь идеи?

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

Также убедитесь, что стили родительской темы подключаются до стилей дочерней темы. Добавьте этот код в файл "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);
}

У меня был кастомайзер, который работал нормально в 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. Надеюсь, это поможет.
