Новый WordPress-плагин Customizer Import/Export для удобного переноса настроек тем и плагинов между сайтами

Сразу: забудьте про ручную настройку темы при клонировании сайта. Это не только неудобно, но и опасно – высок риск потерять детали: шрифты, отступы, цвета, кастомные виджеты, позиционирование. Решение? Используйте прямое копирование настроек интерфейса из одного проекта в другой.

Механизм работает через сериализованные массивы, где хранятся все значения, установленные через визуальный редактор WordPress. Поддерживаются темы, использующие WP_Customize_Manager, включая Astra, OceanWP, GeneratePress и большинство современных оболочек.

Процесс прост: на одном сайте выгрузка, на другом – загрузка. Все через файл .dat. Внутри – JSON с привязкой к идентификаторам настроек. Ошибка – и сайт поедет. Именно поэтому важно внимательно сверять версии темы и активные модули до запуска переноса.

Вот базовый код, если хотите реализовать ту же функцию вручную:


$mods = get_theme_mods();
file_put_contents(\'backup.txt\', serialize($mods));

На новом сайте:


$mods = unserialize(file_get_contents(\'backup.txt\'));
foreach ($mods as $key => $value) {
    set_theme_mod($key, $value);
}

Поддержка шорткодов, кастомных CSS и пользовательских секций – частичная. То, что находится вне области действия customize_register, придется переносить вручную или через другие решения.

Важно: предварительно очистите кэш и отключите CDN, иначе вы можете не увидеть изменений даже после успешного копирования данных.

Настройки привязаны к конкретной теме. Измените оболочку – получите пустой экран. Некоторые шаблоны добавляют уникальные идентификаторы, которые при несоответствии версий приводят к конфликту. Разбираться с этим вручную – то еще удовольствие.

Есть подводный камень: поля с типом image и file сохраняют абсолютные ссылки. Если домены отличаются, путь будет битым. В таких случаях используется фильтрация по wp_get_upload_dir() и ручная замена домена в теле JSON.

Внимание! Перед импортом убедитесь, что тема и все дочерние элементы активны. Без этого данные игнорируются или затираются.

Настройка – это не просто фон и логотип. Это визуальная логика, точные отступы, семантическая структура. Одна пропущенная переменная – и весь вид летит к чертям.

Если вам нужен один в один результат, копируйте настройки строго с учетом совместимости, без попыток \»обновить на ходу\». Никаких импровизаций. Только точность.

Читайте также:  Основы работы с WordPress для начинающих и первые шаги в создании сайта

Как создать файл экспорта настроек Customizer в текущей теме

Открой functions.php активной темы. Вставь следующий фрагмент:

add_action( \'admin_menu\', function() {
add_submenu_page(
\'themes.php\',
\'Экспорт настроек\',
\'Экспорт\',
\'manage_options\',
\'customizer-export\',
function() {
echo \'<div class=\"wrap\"><h1>Экспорт настроек</h1>\';
echo \'<form method=\"post\">\';
submit_button( \'Создать файл\' );
echo \'</form></div>\';
if ( $_SERVER[\'REQUEST_METHOD\'] === \'POST\' ) {
$mods = get_theme_mods();
header( \'Content-Type: application/json\' );
header( \'Content-Disposition: attachment; filename=\"theme-settings.json\"\' );
echo json_encode( $mods );
exit;
}
}
);
});

Этот код добавляет раздел Экспорт в меню Внешний вид. После нажатия кнопки «Создать файл» произойдет скачивание текущих параметров в формате JSON.

Файл содержит все пользовательские изменения, внесенные через пользовательский интерфейс темы: цвета, шрифты, изображения, виджеты, лейауты.

Важно: JSON сохраняется напрямую из get_theme_mods(), без фильтрации. Удаляй лишнее вручную перед передачей.

  • Файл не пригоден для прямой загрузки без валидации.
  • Некоторые настройки могут быть сериализованными массивами или объектами.
  • Содержимое зависит от текущей темы. Установишь другую – файл будет бесполезен.

Хочешь переносить между разными сайтами? Бесполезно, если ID вложений и структура кастомных полей не совпадает.

Помните: скачанный файл не содержит медиафайлы, только ссылки и ID. Переносить изображения нужно вручную или скриптами.

Не уверен в стабильности? Сделай дамп базы через phpMyAdmin, а не полагайся на этот JSON.

И наконец. Что ты будешь с ним делать? Обратно вставить? Тогда понадобятся другие хуки. Но это уже другая история.

Какие настройки WordPress сохраняются при экспорте Customizer

Сохраняются только те параметры, что связаны с функцией get_theme_mod(). Ни один кастомный мета-блок, пользовательская таксономия или произвольно добавленные данные через update_option() – не попадут в выгрузку. Чисто и жестко: только то, что прописано в теме как модификации внешнего вида.

Цвета заголовков? Да. Шрифты? Да. Логотип сайта, фавикон, фон, позиционирование меню – да. Но не более.

Вот пример кода, который точно попадет в экспорт:


$wp_customize->add_setting( \'header_background_color\', array(
\'default\' => \'#ffffff\',
\'type\' => \'theme_mod\'
) );

А вот такой блок проигнорируется при переносе:


update_option( \'custom_admin_email\', \'admin@example.com\' );

Внимание! Все, что сохраняется через option, в выгрузке отсутствует. Эти данные хранятся в другой таблице и не подхватываются при восстановлении интерфейса.

Нельзя опереться на автоподстановку: если разработчик темы не использует theme_mod – настройка не уедет. Проверяйте структуру темы. Если это кастомная разработка, смотрите исходный код.

Читайте также:  Полная переработка трекера GitHub Issues с новыми возможностями и улучшениями для разработчиков

Типовые данные, включаемые в экспорт: логотип (custom_logo), слоган (blogdescription), изображение фона (background_image), фиксированные цвета кнопок, шрифты заголовков, ссылки соцсетей (если добавлены через theme_mod), положение элементов, скрытие заголовка, навигационные пункты (если связаны с темой).

Не попадут в сохранение: виджеты, меню, кастомные поля, повторяющиеся поля ACF, любые данные из сторонних расширений, если они не интегрированы в тему через get_theme_mod().

Важно помнить: экспорт касается только визуальных параметров оформления. Контент, структура, логика – вне зоны действия.

Хочешь сохранить точную копию внешнего вида? Проверь, какие именно параметры подтягиваются из базы через get_theme_mod(). Всё остальное придется восстанавливать вручную или отдельными средствами.

Список ключевых модификаций, чаще всего встречающихся в выгрузках:

  • background_color
  • header_textcolor
  • custom_logo
  • blogname, blogdescription
  • link_color (если добавлен разработчиком)

Вся сила – в структуре темы. Выгружается только то, что встроено правильно. Остальное теряется. Бесповоротно.

Как импортировать файл настроек Customizer на другом сайте

Зайдите в административную панель сайта, куда необходимо перенести внешний вид. Перейдите в раздел «Внешний вид» → «Настроить». В нижней части панели слева выберите пункт «Импорт/Экспорт».

В открывшемся окне найдите кнопку «Выбрать файл». Укажите файл с расширением .dat, заранее полученный с другого ресурса. Не перепутайте: это не .json и не .xml. Только бинарный формат!

Далее активируйте опцию «Импортировать медиафайлы», если планируется полная реконструкция визуального стиля. Эта галочка подтянет изображения, иконки, логотипы. Не включайте, если структура медиа отличается – получите хаос.

Важно: резервная копия перед процедурой – не рекомендация, а обязанность. Нельзя предугадать, как поведёт себя текущая тема при подмене параметров.

Нажмите «Загрузить и импортировать». Браузер может зависнуть. Терпите. Время выполнения зависит от объёма данных и сервера. Перезагрузка в процессе – риск полной потери кастомизации.

По завершении обновите сайт. Оцените: цвета, отступы, шрифты, поведение элементов. Что-то поехало? Проверьте совместимость темы. Некоторые шаблоны некорректно воспринимают сторонние конфигурации.

Внимание! Если файл не открывается или отображается ошибка – проверьте версию WordPress и шаблона. Старые релизы не дружат с новыми схемами настроек.

Для ручной проверки корректности можно распаковать .dat через PHP:

Читайте также:  EditorPlus — удобный плагин для эффективного управления дизайном блоков в WordPress


$data = file_get_contents(\'settings.dat\');
$decoded = unserialize($data);
print_r($decoded);

Если массив пуст – файл повреждён или зашифрован нестандартно. Не тратьте время, запросите новый экспорт.

Завершающий штрих – очистить кэш. Особенно если используете плагин оптимизации или CDN. Иначе увидите старую версию страницы.

Настройки перенесены? Отлично. Но это ещё не гарантия стабильности. Проверьте мобильную адаптацию, виджеты и кастомные хуки. Ручная корректировка может понадобиться.

Что делать, если импортированный файл не применяет изменения

Сначала убедитесь: файл завершён, не обрезан, расширение правильное – .dat, а не случайно .txt. Откройте его в текстовом редакторе и проверьте наличие массива theme_mods_ или customize_changeset. Пусто? Тогда экспорт был некорректным – повторите выгрузку с активной темой.

Если содержимое на месте, но интерфейс молчит – проверьте права доступа на сервере. Каталог wp-content/uploads должен иметь права не менее 755. Файл настроек, если используется временно, может удаляться автоматически из-за ограничений хостинга.

Внимание! Настройки применяются только к той теме, в рамках которой они были выгружены. При несовпадении слетает всё. Проверьте имя темы: даже символ отличается – настройки игнорируются.

Активируйте нужную тему вручную через wp admin → Внешний вид → Темы, затем повторите загрузку. Не помогает? Тогда отключите все дополнения. Некоторые из них перезаписывают настройки внешнего вида на лету.

Проверьте таблицу wp_options. Поле theme_mods_{slug} должно содержать массив настроек. Если оно не обновляется – вмешивается кэш. Очистите его: WP Super Cache, W3 Total Cache или встроенный объектный.

Важно помнить: изменения не видны, если кастомайзер открыт до импорта. Закройте вкладку. Перезагрузите админку. Только потом проверяйте визуально.

Поддержка multisite? Тогда файл может быть загружен не в ту сеть. Перейдите в нужный сайт через панель администратора сети, выполните импорт ещё раз.

Если всё выше перепробовано, используйте CLI: wp option update theme_mods_{slug} \"$(cat settings.dat)\". Это обходит UI и записывает напрямую в базу. Но предварительно сделайте резервную копию.

Ощущение, что всё верно, а ничего не работает – ложное. Проверьте каждый шаг. Там, где один байт не совпадает, WordPress отказывается принимать файл. Без объяснений. Без намёков.

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *