Маса Намери и замени WordPress бази данни - Лесният начин
Има няколко случая, където трябва променете URL адресите в нашата база данни на WordPress. Например, трябва да направим това след мигриране на база данни на WordPress от един сайт, напр. от http://acme.com
отдалечено място за производство, на. \ t http://acme.dev
уебсайт за местно развитие на нашия компютър.
WordPress.org е домакин на голям брой плъгини, като WP DBManager и WP Migrate DB, а също така има и редица инструменти от трета страна, които ви позволяват да база данни за импортиране лесно. Трудната част се налага променете всеки потребителски URL вътре в базата данни.
След мигриране на базата данни, URL адресите в нея все още сочи към стария сайт, в този случай acme.com
. Можете да намерите стария URL адрес в wp_options
таблица, зададена като стойността на SITEURL
и У дома
опции и вероятно е вграден в няколко други реда и таблици в базата данни. Тези стари URL адреси могат евентуално да попречат на сайта ви да работи правилно, така че трябва променете ги на новия URL адрес, в нашия пример acme.dev
.
На този етап, достъп до нашия сайт за разработка на адрес acme.dev
просто ще доведе на празна страница.
Как да променим всички тези URL адреси в базата данни?
Стартиране на SQL заявка
Обикновено хората ще изпълняват следния SQL Query, който замества стойностите на SITEURL
и У дома
опции в wp_options
маса.
UPDATE wp_options SET option_value = замени (option_value, 'http://acme.com', 'http://acme.dev') WHERE option_name = 'home' ИЛИ option_name = 'siteurl';
Впоследствие, те използват друга SQL заявка, за да заменят всички URL събития в wp_posts
таблица, а именно в POST_CONTENT
колона от всеки ред.
UPDATE wp_posts SET post_content = замени (post_content, 'http://acme.com', 'http://acme.dev');
Изпълнението на тези заявки е работещо решение, но в същото време не е удобно. Тя може да бъде дори раздразнителна, тъй като базата данни може да се превърне в несъстоятелност поради прост пропуск в заявката..
Използвайки WP-CLI
Друг път, който можем да направим, и за който установих, че е по-удобна алтернатива, е използвайки командния ред на WP-CLI. Това означава, че трябва да имате инсталиран WP-CLI.
Ако приемем, че сте инсталирали WP-CLI и имате WP
Командата е достъпна като псевдоним, отидете до директорията, където се намират файловете на сайта на WordPress.
След това изпълнете следната команда:
wp search-replace 'http://acme.com' http://acme.dev
Първият параметър, "Http://acme.com"
, е старият запис, който се заменя с втория, "Http://acme.dev"
.
Командният ред ще търси чрез всички таблици в базата данни, не само POST_CONTENT
колона и wp_options
таблица, и замени всеки случай на входа, преминал през параметрите на командата.
Както можете да видите от горната снимка на екрана, са направени общо 225 замени. И ние го направихме чрез проста командна линия.
Мисля, че си струва да споменем, че можем да използваме wp search-replace
команда, не само за заместване на URL адреси, но и за всяка част от тях стойност съхранени в базата данни. Също така можем да ограничим операцията до определена таблица, като подадем името на таблицата като четвърти параметър, както следва:
wp search-replace '.jpg ".webp" wp_posts
Изпълнявайки горната команда, тя ще търси само чрез wp_posts
, таблицата, в която се съхранява съдържанието ни - публикации, страници и т.н. - и да замени разширението за изображение от .JPG
да се .WebP
.
WP-CLI прави заплетената SQL операция по-интуитивна и можете да работите с нея по по-удобен начин. Ако искате да настроите по-добре вашите команди, погледнете документацията на WP-CLI, която ви дава списък с опции за извършване на по-усъвършенствана операция с wp search-replace
команда.