При переносе WordPress сайт на HTTPS у вас может оставшиеся ссылки HTTP. Несмотря на использование инструмента миграции или какой-либо плагина, они не всегда могут найти все HTTP ссылки, которые могут вызвать ошибки смешанного содержимого ошибки и предупреждения о небезопасном содержании.
Сделайте сначала резервную копию, это очень легко, так как если вы что-то испортите, вы можете повторно импортировать и начать заново.
wp db export backup-before-search-replace.sql
Мы можем имитировать с помощью флага —dry-run, он будет подсчитывать, сколько количество раз он найдет строку andreyex.ru
wp search-replace 'andreyex.ru' 'andreyex-new.ru' --dry-run
Вы получите отчет, показывающим, сколько требуется замен в базы данных
+------------------+-----------------------+--------------+------+ | Table | Column | Replacements | Type | +------------------+-----------------------+--------------+------+ | wp_commentmeta | meta_key | 0 | SQL | | wp_commentmeta | meta_value | 0 | SQL | | wp_comments | comment_author | 0 | SQL | | wp_comments | comment_author_email | 0 | SQL | | wp_comments | comment_author_url | 0 | SQL | | wp_comments | comment_author_IP | 0 | SQL | | wp_comments | comment_content | 0 | SQL | | wp_comments | comment_approved | 0 | SQL | | wp_comments | comment_agent | 0 | SQL | | wp_comments | comment_type | 0 | SQL | | wp_links | link_url | 0 | SQL | | wp_links | link_name | 0 | SQL | | wp_links | link_image | 0 | SQL | | wp_links | link_target | 0 | SQL | | wp_links | link_description | 0 | SQL | | wp_links | link_visible | 0 | SQL | | wp_links | link_rel | 0 | SQL | | wp_links | link_notes | 0 | SQL | | wp_links | link_rss | 0 | SQL | | wp_options | option_name | 0 | SQL | | wp_options | option_value | 11 | PHP | | wp_options | autoload | 0 | SQL | | wp_postmeta | meta_key | 0 | SQL | | wp_postmeta | meta_value | 15 | PHP | | wp_posts | post_content | 45 | SQL | | wp_posts | post_title | 0 | SQL | | wp_posts | post_excerpt | 0 | SQL | | wp_posts | post_status | 0 | SQL | | wp_posts | comment_status | 0 | SQL | | wp_posts | ping_status | 0 | SQL | | wp_posts | post_password | 0 | SQL | | wp_posts | post_name | 0 | SQL | | wp_posts | to_ping | 0 | SQL | | wp_posts | pinged | 0 | SQL | | wp_posts | post_content_filtered | 0 | SQL | | wp_posts | guid | 65 | SQL | | wp_posts | post_type | 0 | SQL | | wp_posts | post_mime_type | 0 | SQL | | wp_term_taxonomy | taxonomy | 0 | SQL | | wp_term_taxonomy | description | 0 | SQL | | wp_termmeta | meta_key | 0 | SQL | | wp_termmeta | meta_value | 0 | SQL | | wp_terms | name | 0 | SQL | | wp_terms | slug | 0 | SQL | | wp_usermeta | meta_key | 0 | SQL | | wp_usermeta | meta_value | 1 | PHP | | wp_users | user_login | 0 | SQL | | wp_users | user_nicename | 0 | SQL | | wp_users | user_email | 1 | SQL | | wp_users | user_url | 0 | SQL | | wp_users | user_activation_key | 0 | SQL | | wp_users | display_name | 0 | SQL | +------------------+-----------------------+--------------+------+ Success: 150 replacements to be made.
Для выполнения фактического поиска и замены в базе данных WordPress выполните следующее:
wp search-replace 'andreyex.ru' 'andreyex-new.ru'
По умолчанию команда search-replace выполняет таблицы зарегистрированные как $ wpdb. У Вас может быть некоторые пользовательские таблицы, которые также должны быть обновлены, поэтому флаг —all-tables очень полезен.
wp search-replace 'andreyex.ru' 'andreyex-new.ru' --all-tables --dry-run
Еще один удобный инструмент для создания нового дампа базы данных с изменениями, которые вы можете сделать для тестирования
Вы также можете экспортировать измененную базу данных с помощью этого параметра —export
wp search-replace 'domain.ru' 'newdomain.ru' --export=/tmp/staging.sql
Некоторые плагины в WordPress используют кодировку URL для хранения информации в базе данных, которая использует этот формат для миграции HTTP, HTTPS %3A= : и %2F= /.
Для того, чтобы проверить, есть ли у Вас какие-либо из них в вашем использовании в базе данных, используйте эту команду
wp search-replace 'http%3A%2F%2F' 'https%3A%2F%2F' --dry-run
Некоторые плагины избегают слэш с помощью \/и может быть легко исправлено с помощью search-replace
wp search-replace 'http:\/\/domain.ru' 'http:\/\/newdomain.ru' --dry-run
Замена URL закодированных строк
wp search-replace 'http%3A%2F%2Fdomain.ru' 'http%3A%2F%2Fnewdomain.ru'
Как заменить домены с подпапками и URL закодированными строками
wp search-replace 'http%3A%2F%2Fdomain.ru%2Fsubfolder' 'http%3A%2F%2Fnewdomain.ru%2Fsubfolder'
Если вы убежавший слэш, эта команда используется так:
wp search-replace 'http:\/\/domain.ru' 'http:\/\/newdomain.ru'
Иногда плагины хранят информацию о пути хранения на вашем хосте, исправить это можно с помощью команды:
wp search-replace '/public_html/andreyex.ru' '/public_html/newfolder'