При переносе сайта (на другой хостинг или на другой домен) встречается множество нюансов. Рассмотрим их.
Ошибки при переносе
При экспорте дамба базы данных иногда выдается ошибка:
Чтобы исправить надо:
Открыть БД в Нодпад++ и с помощью поиска заменить все ‘utf8mb4_unicode_ci’ на «utf8_general_ci», также «utf8mb4» на «utf8».
После этого база без проблем импортируется.
Эта ошибка означает что в БД нет какой-то таблицы.
Замена домена
Поменять домен можно в настройках wordpress, но иногда так же надо его менять и в базе данных.
Например, если в записях содержатся ссылки на изображения по старому домену. Или при добавлении SSL сертификата.
Замена в базе данных старого домена на новый
UPDATE wp_options SET option_value = REPLACE(option_value, 'http://test.site.ru', 'http://site.ru') WHERE option_name = 'home' OR option_name = 'siteurl';
UPDATE wp_posts SET post_content = REPLACE (post_content, 'http://test.site.ru', 'http://site.ru');
UPDATE wp_posts SET guid = REPLACE (guid, 'http://test.site.ru', 'http://site.ru');
UPDATE wp_postmeta SET meta_value = REPLACE (meta_value, 'http://test.site.ru','http://site.ru');
UPDATE wp_term_taxonomy SET description = REPLACE (description, 'http://test.site.ru', 'http://site.ru');
Для того, чтобы выполнить эти запросы, вам нужно выбрать базу данных в phpMyAdmin, перейти на вкладку SQL, вставить запросы в поле и нажать ок.
Если есть заполненные описания с изображениями в категория, то их обновить нужно так
UPDATE wp_term_taxonomy SET description = REPLACE (description, 'http://site.ru','https://site.ru');
Для коротких описаний woocommerce нужно делать еще такой запрос на обновление
UPDATE wp_posts SET post_excerpt = REPLACE (post_excerpt, 'http://test.site.ru', 'http://site.ru');
Если во время разработки сайта на техническом домене был установлен Yoast, то в его таблицах при переносе на основной домен нужно также сделать замены:
UPDATE wp_yoast_indexable SET permalink = REPLACE (permalink, 'http://site.beget.tech', 'https://site161.ru');
UPDATE wp_yoast_indexable SET twitter_image = REPLACE (twitter_image, 'http://site.beget.tech', 'https://site161.ru');
UPDATE wp_yoast_indexable SET open_graph_image = REPLACE (open_graph_image, 'http://site.beget.tech', 'https://site161.ru');
UPDATE wp_yoast_seo_links SET url = REPLACE (url, 'http://site.beget.tech', 'https://site161.ru');
Экспорт и импорт
Одним из вариантов переноса является экспорт контента с одного сайта (старого) и импортом на другой сайт (новый). Данные функции находятся в меню Инструменты. При экспорте получаем файл .xml который содержит практически всю информацию с сайта, кроме: шаблонов и плагинов. При этом папка Медиафайлы (uploads) копируется при импорте один в один со старого сайта.
Единственной небольшой проблемой могут стать абсолютные ссылки в записях, но это легко решить через phpMyAdmin (как описано в предыдущем пункте.)
Размер дампа базы
При импорте столкнулся с тем, что в php.ini установлен лимит на размер импортируемого дампа базы.
Импорт через UpdraftPlus Backup
Если сделать полный импорт вместе с базой данный через данный плагин, то после окончания в базе (siteurl и host) будут с того сайта с которого делался бэкап. Если есть доступ phpMyAdmin это легко исправить, если нет доступа, то на сайте нужно прописать следующую функцию в functions.php:
update_option( 'siteurl', 'http://site.ru' );
update_option( 'home', 'http://site.ru' );
Либо альтернативный способ прописать в wp-config:
define( 'WP_HOME', 'http://stp61.ru' );
define( 'WP_SITEURL', 'http://stp61.ru' );
[site-socialshare]