Haku ja korvaus WordPress-tietokannassa
WordPress ei tallenna sivustosi osoitetta yhteen paikkaan. Osoite on asetuksissa, mutta se on myös kirjaimellisesti artikkeleissasi, kuvien tiedoissa sekä teemojen, lisäosien ja vimpaimien asetuksissa. Jos vaihdat osoitteen, se on siksi korvattava koko tietokannassa. Tässä kerrotaan, miten se tehdään turvallisesti ja miksi tavallinen SQL-komento voi rikkoa sivustosi.
Milloin tarvitset tätä?
- Sivustosi oli ennen http-osoitteessa ja toimii nyt https:llä, ja näet sekasisältöä (https-sivu, joka lataa osia http:n kautta). Katso myös Ei lukkoa tai "ei turvallinen": sekasisällön korjaaminen.
- Siirrät sivustosi toiseen verkkotunnukseen tai väliaikaisesta osoitteesta oikeaan verkkotunnukseesi.
- Olet tehnyt käsin kopion toiseen osoitteeseen, esimerkiksi testisivuston.
Jos kloonaat sivuston Installatronilla tai Website Managerilla, se päivittää kopion osoitteet itse. Katso Kloonaaminen ja testiympäristön (staging) luominen. Jos siirryt vain toiseen webhotelliin samalla verkkotunnuksella, mitään ei tarvitse muuttaa.
Miksi ei pelkkää SQL REPLACE -komentoa?
phpMyAdminissa voit korvata kaikki tekstit yhdellä SQL-komennolla. Älä tee niin osoitteille. Monet asetukset on tallennettu sarjallistettuina: PHP merkitsee niihin jokaisen tekstin pituuden. Se näyttää tältä:
s:27:"http://example.com/logo.png";
s:27 tarkoittaa: tässä tulee 27 merkin pituinen teksti. Jos muutat sen muotoon https://, teksti on 28 merkkiä pitkä, mutta siinä lukee edelleen 27. PHP ei silloin enää pysty lukemaan arvoa, ja asetus katoaa huomaamatta. Näet silloin esimerkiksi tyhjän valikon, kadonneen logon tai kadonneita vimpaimia. Käytä siksi työkalua, joka päivittää nämä pituudet.
Ensin varmuuskopio
Etsi ja korvaa -toiminto tekee muutokset heti, eikä siinä ole roskakoria. Vie tietokantasi etukäteen, katso Tietokannan vieminen, tai tee yhdellä napsautuksella ylimääräinen varmuuskopio WebOké Backupsissa, katso WebOké Backups: varmuuskopion tarkasteleminen, palauttaminen tai lataaminen.
Tapa 1: WP-CLI Terminalissa tai SSH:n kautta
WP-CLI on WordPressin virallinen komentorivityökalu. Meillä käytät sitä komennolla wp DirectAdminin Terminalissa tai SSH:n kautta. Se on käytettävissä vain paketeissa, joissa on SSH. Mitkä paketit ne ovat, kerrotaan artikkelissa Terminal selaimessasi.
- Avaa Terminal ja siirry WordPressisi kansioon:
cd domains/example.com/public_html - Katso ensin, mitä muuttuisi, muuttamatta vielä mitään:
wp search-replace 'http://example.com' 'https://example.com' --skip-columns=guid --dry-run
Näet taulukohtaisesti, montako korvausta tehtäisiin. - Jos tulos näyttää oikealta, suorita sama komento ilman valitsinta
--dry-run.
Muutama komennon valitsin:
- Ilman lisävalitsimia WP-CLI käsittelee tauluja, jotka WordPress tuntee. Jos lisäosa käyttää omia taulujaan samalla etuliitteellä (esimerkiksi
wp_), lisää--all-tables-with-prefix. Valitsin--all-tableskoskee kaikkia tietokannan tauluja, myös sellaisen toisen sivuston tauluja, joka sattuu olemaan samassa tietokannassa. --skip-columns=guidjättää rauhaan sarakkeenguid, jossa ovat artikkelien pysyvät tunnisteet. WordPress suosittelee, ettei niitä muuteta koskaan, muuten syötteenlukijat näyttävät vanhat artikkelit uudelleen uusina.- Jos monimutkaisten asetusten kanssa menee jotain pieleen,
--precisetoimii hitaammin mutta perusteellisemmin.
Tapa 2: lisäosa
Jos sinulla ei ole Terminalia tai SSH:ta, käytä etsi ja korvaa -lisäosaa, joka tukee sarjallistettua dataa. Niitä löytyy useita wordpress.orgin lisäosahakemistosta. Lue valitessasi kuvaus: siinä pitää mainita, että lisäosa käsittelee sarjallistetun datan oikein. Käytä tässäkin ensin testitilaa, jos lisäosassa sellainen on, ja poista lisäosa, kun olet valmis. Katso myös WordPress-lisäosien valitseminen, arvioiminen ja siivoaminen.
http:// tai https://. Jos korvaat pelkän example.com, muutat myös sähköpostiosoitteita, kuten info@example.com, ja muita tekstejä, joissa nimi esiintyy. Huomaa myös kauttaviiva lopussa: jos korvaat https://example.com/ osoitteella https://example.net, osoitteet liimautuvat yhteen.Vain WordPress-osoite ja sivuston osoite?
Etkö pääse muutoksen jälkeen enää hallintapaneeliin, koska WordPress ohjaa sinut väärään osoitteeseen? Muuta silloin ensin vain rivit siteurl ja home taulussa wp_options (etuliite wp_ voi olla sinulla erilainen). Ne ovat tavallista tekstiä, joten niitä saa muuttaa phpMyAdminissa. Miten se tehdään, kerrotaan artikkelissa phpMyAdminin avaaminen ja käyttäminen. Tee sen jälkeen loput WP-CLI:llä tai lisäosalla.
Lopuksi
- Tyhjennä välimuistilisäosasi ja selaimesi välimuisti.
- Jos sivut antavat virheen 404, tallenna kerran kohdassa Asetukset > Kestolinkit. Katso Sivustoni ei toimi lataamisen tai siirron jälkeen.
- Tarkista muutama sivu, valikko, logo ja jokin lomake. Avaa konsoli F12:lla ja katso, näkyykö siellä vielä ilmoituksia sekasisällöstä.
Lue lisää
- wp search-replace sivustolla developer.wordpress.org (englanniksi)
- WordPressin siirtäminen käsin: tiedostot, tietokanta ja wp-config.php
Haluatko oppia lisää? Käy ilmainen WordPress-kurssi, oppitunti 3.2 www, uudelleenohjaukset ja sekasisältö tai oppitunti 9.5 WordPress-sivuston siirtäminen.
