Mass Find & Zamenjaj WordPress baze podatkov - na preprost način
Obstaja več priložnosti, kjer moramo spremenite naslove URL v naši spletni strani WordPress. To moramo na primer narediti po selitvi baze podatkov WordPress z enega mesta, npr. Iz http://acme.com
oddaljene proizvodne enote http://acme.dev
spletno mesto lokalnega razvoja na našem računalniku.
WordPress.org gosti veliko število vtičnikov, kot sta WP DBManager in WP Migrate DB, poleg tega pa obstajajo številna orodja tretjih oseb, ki vam omogočajo, da podatkovne baze uvoza enostavno. Težaven del je spremenite vsak primerek URL-ja znotraj baze podatkov.
Po selitvi baze podatkov, URL-ji znotraj nje še vedno kažejo na staro mesto, v tem primeru acme.com
. Stari URL lahko najdete v wp_options
tabela, nastavljena kot vrednost siteurl
in doma
možnosti in je verjetno tudi vgrajen v več drugih vrsticah in tabelah v bazi podatkov. Ti stari URL-ji lahko sčasoma preprečijo pravilno izvajanje spletnega mesta, zato morate spremenite v novi URL, v našem primeru acme.dev
.
Na tej točki, dostop do naše razvojne strani na acme.dev
preprosto vodil na prazno stran.
Torej, kako spremeniti vse te URL-je v bazi podatkov?
Izvajanje poizvedbe SQL
Običajno bi ljudje izvajali naslednjo poizvedbo SQL, ki nadomešča vrednosti siteurl
in doma
možnosti wp_options
tabela.
UPDATE wp_options SET option_value = zamenjaj (option_value, 'http://acme.com', 'http://acme.dev') WHERE option_name = 'home' ALI option_name = 'siteurl';
Nato uporabljajo drugo poizvedbo SQL za zamenjavo vseh pojavitev URL-jev v wp_posts
tabele, in sicer v post_content
stolpca vsake vrstice.
UPDATE wp_posts SET post_content = zamenjaj (post_content, 'http://acme.com', 'http://acme.dev');
Izvajanje teh poizvedb je uporabna rešitev, vendar obenem ni priročno. Lahko bi bilo celo razburjenje z živci, saj lahko zaradi preprostega nadzora nad poizvedbo baza podatkov postane neprijetna..
Izkoriščanje WP-CLI
Druga pot, ki jo lahko naredimo in za katero sem ugotovila, da je bolj priročna alternativa, je s pomočjo ukazne vrstice WP-CLI. To pomeni, da boste morali namestiti WP-CLI.
Ob predpostavki, da ste namestili WP-CLI in imate wp
Ukaz, ki je dostopen kot vzdevek, se pomaknite do imenika, v katerem so vaše datoteke WordPress.
Nato zaženite ta ukaz:
wp search-zamenjaj "http://acme.com" http://acme.dev
Prvi parameter, »http://acme.com«
, je stari vnos, ki ga je treba zamenjati z drugim, »http://acme.dev«
.
Ukazna vrstica bo iskala vse tabele v bazi podatkov, ne samo post_content
stolpcu in wp_options
tabela, in. \ t zamenjajte vsak primer vnosa, ki je potekal skozi parametre ukaza.
Kot lahko vidite iz zgornjega posnetka, je bilo opravljenih 225 zamenjav. In to smo naredili s preprostim ukazom.
Mislim, da je vredno omeniti, da lahko uporabimo wp search-replace
ukaz, ne samo za zamenjavo URL-jev, temveč tudi za vsak kos vrednost shranjene tudi v bazi podatkov. Operacijo lahko omejimo tudi na določeno tabelo tako, da podamo ime tabele kot četrti parameter, kot sledi:
wp search-replace '.jpg ".webp" wp_posts
Z izvajanjem zgornjega ukaza bo samo iskal wp_posts
, tabelo, v kateri so shranjene naše vsebine - objave, strani itd .jpg
do .webp
.
WP-CLI naredi zapleteno SQL operacijo bolj intuitivno in z njo lahko delate na bolj priročen način. Če želite natančno nastaviti ukaze, si oglejte dokumentacijo WP-CLI, ki vam ponuja seznam možnosti za izvedbo naprednejšega delovanja s wp search-replace
ukaz.