Mass Find & Replace WordPress adatbázisok - az Easy Way
Számos alkalomra van szükségünk URL-ek megváltoztatása a WordPress webhelyadatbázisunkban. Például ezt a WordPress adatbázis egyik webhelyről, pl. tól http://acme.com
távoli termelési helyszín, a http://acme.dev
helyi fejlesztési honlapunkat a számítógépünkön.
A WordPress.org számos plugint tartalmaz, például a WP DBManager és a WP Migrate DB, és számos olyan harmadik fél eszköze is van, amely lehetővé teszi, hogy import adatbázis könnyen. A trükkös résznek kell minden URL-példány módosítása az adatbázisban.
Az adatbázis áthelyezése után az URL-ek belsejében találhatóak még mindig a régi oldalra mutat, ebben az esetben acme.com
. A régi URL-címet a wp_options
táblázatban beállítva siteurl
és itthon
opciók, és valószínűleg az adatbázis több sorában és táblájában is beágyazódik. Ezek a régi URL-ek végül megakadályozhatják a webhely helyes működését, ezért szükség van rá módosítsa őket az új URL-címre, példánkban acme.dev
.
Ezen a ponton elérheti a fejlesztési webhelyet acme.dev
egyszerűen vezet egy üres oldalra.
Szóval hogyan változtatjuk meg ezeket az URL-eket az adatbázisban?
SQL lekérdezés futtatása
Általában az emberek az alábbi SQL lekérdezéseket futtatják, amelyek helyettesítik a siteurl
és itthon
opciók a wp_options
asztal.
UPDATE wp_options SET option_value = helyettesít (option_value, 'http://acme.com', 'http://acme.dev') WHERE opció_neve = 'home' vagy opció_név = 'siteurl';
Ezt követően egy másik SQL lekérdezést használnak az összes URL-előfordulás helyettesítésére wp_posts
táblázat, nevezetesen a POST_CONTENT
oszlopok.
UPDATE wp_posts SET post_content = cserélje ki (post_content, 'http://acme.com', 'http://acme.dev');
Ezeknek a lekérdezéseknek a futtatása működőképes megoldás, ugyanakkor nem célszerű. Lehet, hogy még ideg-rázkódás is lehet, látva, hogy az adatbázis miért fordulhat a haywire-re a lekérdezésen belüli egyszerű felügyelet miatt.
A WP-CLI kihasználása
Egy másik út, amit tehetünk, és amelyet egy sokkal alternatívabbnak találtam, az a a WP-CLI parancssor kihasználása. Ez azt jelenti, hogy telepítenie kell a WP-CLI-t.
Feltételezve, hogy telepítette a WP-CLI-t és rendelkezik a wp
parancsot, amely alias néven elérhető, keresse meg azt a könyvtárat, ahová a WordPress webhelyfájlok tartózkodnak.
Ezután futtassa a következő parancsot:
wp search-helyettesíti a http://acme.com címet http://acme.dev
Az első paraméter, 'Http://acme.com'
, a régi bejegyzés helyett a második, 'Http://acme.dev'
.
A parancssor a keresést végzi az adatbázis összes táblázata, nem csak a POST_CONTENT
oszlop és wp_options
táblázat, és cserélje ki minden példányt a bejegyzés átjárta a parancs paramétereit.
Ahogy a fenti képernyőről is látható, összesen 225 csere történt. És egy egyszerű parancssoron keresztül tettük meg.
Szerintem érdemes megemlíteni, hogy használhatjuk wp keresés helyettesítése
parancsot, nem csak az URL-ek cseréjére, hanem az összes darabra érték az adatbázisban is tárolható. A műveletet egy bizonyos táblázatba is korlátozhatjuk úgy, hogy a táblázat nevét negyedik paraméterként továbbítjuk:
wp search-helyettesíti a ".jpg" .webp wp_posts parancsot
A fenti parancs futtatásával csak a keresést végzi wp_posts
, a táblázatot, amely tárolja a tartalmát - bejegyzéseket, oldalakat stb. - és cserélje ki a képkiterjesztést .jpg
nak nek .webp
.
A WP-CLI az SQL-műveletet intuitívabbá teszi, és kényelmesebb módon dolgozhat vele. Ha a parancsokat finomhangolni szeretné, nézze meg a WP-CLI dokumentációját, amely az opciók listáját nyújtja a fejlettebb műveletek végrehajtásához a wp keresés helyettesítése
parancs.