Начална » WordPress » Маса Намери и замени WordPress бази данни - Лесният начин

    Маса Намери и замени 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.

    IMAGE: Продължение Pro, търсене на стойност на базата данни

    На този етап, достъп до нашия сайт за разработка на адрес 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команда.