ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

Расширенный поиск и замена в базе данных WordPress с помощью WP-CLI

Расширенный поиск в базе данных WordPress HTTPS + Замена с помощью WP-CLI

При переносе 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

Кодировка URL

Некоторые плагины в 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

Замена 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'

Путь поиска и замены в WordPress

Иногда плагины хранят информацию о пути хранения на вашем хосте, исправить это можно с помощью команды:

wp search-replace '/public_html/andreyex.ru' '/public_html/newfolder'

 

Exit mobile version