Skip to content

Kõik WordPressist, veebiarendusest — ja mitte ainult

🔍 Otsi ja asenda phpMyAdminis: kuidas asendada teksti ja URL-e WordPressi andmebaasis

🔍 Otsi ja asenda phpMyAdminis: kuidas asendada teksti ja URL-e WordPressi andmebaasis

💡 Kiire ülevaade:

  • mis on otsing ja asendamine phpMyAdminis ning millal seda vaja läheb;
  • samm-sammuline SQL-päring teksti asendamiseks kogu WordPressi andmebaasis;
  • kuidas vanu URL-e uute vastu phpMyAdmini kaudu hulgi asendada;
  • ülevaade kahest pluginast, Better Search Replace ja Search & Replace.

Mis on otsing ja asendamine phpMyAdminis ning miks seda vaja on

Kujutle, et vahetasid domeeni, tegid brändiuuenduse või muutsid püsilinkide struktuuri. Kuskil sügaval WordPressi andmebaasis on postitustes, meta-väljadel ja teema seadetes sadu vanu viiteid alles. Avada iga kirje ja parandada see käsitsi? Viieleheküljelise saidi puhul ehk. Kahesaja lehekülje puhul on see kaotatud päev.

phpMyAdmin on MySQL-i haldamise veebiliides, mis on peaaegu igal majutusel cPaneliga kaasas. Sellega käivitad SQL-päringu, mis leiab ja asendab määratud sõne kõigis andmebaasi kirjetes ühe hoobiga. Pole pluginaid, pole lisakoodi, ainult sina, brauser ja õige päring.

Sellel meetodil on siiski üks varjukülg: süntaksiviga võib mõjutada valesid andmeid. Seepärast võtame päringud tükkideks lahti ja lõpus näitame paari pluginat, mis välistavad käsitsi tehtava vea ja pakuvad enne asendamist eelvaadet.

Kuidas phpMyAdmini kaudu teksti otsida ja asendada

Kõige tavalisem stsenaarium on sõna või fraasi asendamine kõigis postitustes korraga. Näiteks vana ettevõtte nimi uuega, aegunud termin või katkine e-post. Vaja on vaid ühte UPDATE-päringut phpMyAdminis.

1. Samm: pääse phpMyAdmini cPaneli kaudu

Ava oma majutuse cPanel, leia jaotis „Databases" ja klõpsa phpMyAdmini ikoonil. Logi sisse (tavaliselt on kasutajanimi ja parool samad mis cPanelis).

2. Samm: vali oma saidi andmebaas

Pärast sisselogimist ilmub vasakule andmebaaside loend. Klõpsa sellel, mis kuulub sinu WordPressi saidile. Kui nime ei mäleta, kontrolli faili wp-config.php: rida define('DB_NAME', 'database_name').

3. Samm: mine SQL-vahekaardile

Klõpsa ülemisel tööriistaribal nuppu SQL, et avada päringu sisestusaken.

SQL-päringu aken phpMyAdmini liideses

4. Samm: sisesta teksti asendamise SQL-päring

Põhisüntaks näeb välja selline:

1UPDATE table_name SET field_name =
2REPLACE(field_name, 'search_term', 'replacement_term');

Teksti asendamiseks kõigis WordPressi postitustes on päring järgmine:

1UPDATE wp_posts SET post_content =
2REPLACE(post_content, 'old text', 'new text');

Lahti seletatuna: UPDATE wp_posts sihib postituste tabelit; SET post_content muudab välja post_content; REPLACE(post_content, 'A', 'B') on funktsioon, mis leiab alamsõne A ja asendab selle B-ga. Oluline: tabeli prefiks ei pruugi olla wp_; kontrolli väärtust $table_prefix failis wp-config.php.

⚠️ Enne päringu käivitamist tee kindlasti andmebaasist varukoopia. cPanelis kasuta jaotist Backup või pluginat nagu UpdraftPlus. SQL-päringud on pöördumatud; „undo"-nuppu ei ole.

5. Samm: käivita päring

Klõpsa paremas alanurgas nuppu „Go". phpMyAdmin käivitab päringu ja kuvab teate mõjutatud ridade arvuga (näiteks „Rows affected: 47"). See tähendab, et 47 kirjet sisaldas otsitavat teksti ja neid uuendati.

SQL-päringu tulemus phpMyAdminis

Valmis. Sirvi oma saiti ja kontrolli paari lehekülge; vana tekst peaks olema asendatud.

Kuidas WordPressi andmebaasis URL-e phpMyAdmini kaudu asendada

URL-ide asendamine on keerulisem kui teksti asendamine, sest aadresse ei hoita mitte ühes tabelis, vaid need on mitme tabeli vahel laiali. Siin on kohad, kust otsida:

WordPressi andmebaasitabelite loend phpMyAdminis
  • Postitused ja lehed: post_content väli tabelis wp_posts
  • Metaandmete väljad (kohandatud väljad): meta_value tabelis wp_postmeta
  • Teema ja pluginaseaded: option_value tabelis wp_options
  • Kommentaarid: comment_content tabelis wp_comments
  • Menüüd (pärand-linkide haldur): link_url ja link_image tabelis wp_links
  • Kasutajate metaandmed: meta_value tabelis wp_usermeta

Et kõike korraga katta, käivita see päringute komplekt (kopeeri ükshaaval ja klõpsa pärast igaühte nuppu „Go"):

1UPDATE wp_options SET option_value =
2REPLACE(option_value, 'http://old-domain.com', 'https://new-domain.com')
3WHERE option_name = 'home' OR option_name = 'siteurl';
4
5UPDATE wp_posts SET post_content =
6REPLACE(post_content, 'http://old-domain.com', 'https://new-domain.com');
7
8UPDATE wp_postmeta SET meta_value =
9REPLACE(meta_value, 'http://old-domain.com', 'https://new-domain.com');
10
11UPDATE wp_comments SET comment_content =
12REPLACE(comment_content, 'http://old-domain.com', 'https://new-domain.com');
13
14UPDATE wp_links SET link_url =
15REPLACE(link_url, 'http://old-domain.com', 'https://new-domain.com');
16
17UPDATE wp_usermeta SET meta_value =
18REPLACE(meta_value, 'http://old-domain.com', 'https://new-domain.com');

⚠️ Veel kord: enne käivitamist tee täielik varukoopia. Kui sinu sait kasutab serialiseeritud andmeid (enamik teemasid ja pluginaid teeb seda), võib lihtne tekstiasendus struktuuri lõhkuda. Sel juhul on parem kasutada pluginaid järgmisest jaotisest, mis käsitlevad serialiseerimist õigesti.

Pluginad otsimiseks ja asendamiseks WordPressis

Käsitsi phpMyAdmini meetod on kiire, kuid algajale ebaturvaline. Pluginad lahendavad kaks peamist probleemi: need pakuvad enne asendamist eelvaadet (proovikäivitus) ja käsitlevad serialiseeritud andmeid õigesti. Vaatame kahte tõestatud varianti.

Better Search Replace

Better Search Replace plugin liides WordPressi halduspaneelis

Better Search Replace on selle ülesande jaoks kõige populaarsem tasuta plugin, millel on üle miljoni aktiivse installatsiooni. See põhineb avatud lähtekoodiga interconnect/it Search Replace DB skriptil ja kasutab WordPressi sisseehitatud funktsioone, mitte tooreid SQL-päringuid.

Kuidas pluginat kasutada:

  • Paigalda ja aktiveeri see menüüst „Plugins → Add New".
  • Mine menüüsse „Tools → Better Search Replace".
  • Sisesta väljale „Search for" otsitav tekst või URL.
  • Sisesta väljale „Replace with" asendustekst.
  • Plokis „Select tables" vali vajalikud tabelid (või kõik).
  • Luba „Run as dry run" proovikäivituseks ilma tegeliku asendamiseta. Plugin näitab, mitu vastet leiti ja millistest tabelitest.
Better Search Replace plugin seaded kuivkäivitusvalikuga

Pärast ülevaatamist keela „Dry run" ja käivita asendamine uuesti, seekord juba tegelike muudatuste salvestamisega.

Plussid: käsitleb serialiseeritud andmeid õigesti, nii et URL-id ei purune pärast asendamist. Miinused: ei loo enne asendamist automaatset varukoopiat (tee see ise UpdraftPlusi või sarnasega).

Hind: tasuta.

🔗 Better Search Replace WordPress.org-is

Search & Replace

Search and Replace plugin liides WordPressi töölaual

Search & Replace WP Media meeskonnalt on alternatiiv, millel on sisseehitatud varundus. Enne asendamist saab plugin luua andmebaasi tõmmise ja selle salvestada. Kui midagi läheb valesti, taastad varukoopia kahe klõpsuga.

Lisafunktsioonid:

  • ühe klõpsuga domeeni/URL-i asendamine (eraldi „Replace Domain / URL" vahekaart);
  • CSV tugi pakettasenduseks (vorming: „otsitav; asendus");
  • tabeli prefiksi muutmine;
  • multisite tugi.

Pluginat on üle 100 000 aktiivse paigalduse ja selle hinnang on 4,3. Ametlikult pole seda uusimate WordPressi versioonidega testitud, kuid kasutajate arvustused kinnitavad stabiilset tööd WP 6.8 ja PHP 8.2 peal.

Miinused: liides on vähem intuitiivne kui Better Search Replace'il, õppimiskõver on veidi järsem.

Hind: tasuta.

🔗 Search & Replace WordPress.org-is

Mida valida: plugin või phpMyAdmin?

Kiirjuhend: kui asendad postituste tekstis 1-2 sõna ja tunned end SQL süntaksis kindlalt, on phpMyAdmin kiirem. Kui muudad domeene, töötled serialiseeritud andmeid või ei taha andmebaasi käsitsi puutuda, paigalda Better Search Replace ja tee proovikäivitus. Kui vajad sisseehitatud varundust ja pakettasendust, kasuta Search & Replace'i.

⁉️🤔 Korduma kippuvad küsimused

Kas ma saan pärast SQL-päringu käivitamist asenduse tagasi võtta?

Ei, SQL-päring phpMyAdminis on pöördumatu. Just seepärast on täielik andmebaasi varukoopia enne igasugust asendust kohustuslik. Loo see cPaneli kaudu (Backup → Download MySQL Database) või mõne pluginaga nagu UpdraftPlus. Varukoopiaga saad andmebaasi alati eelmisse olekusse tagasi keerata.

Mis on serialiseeritud andmed ja miks lihtne URL-i asendamine need katki teeb?

Serialiseerimine on viis pakkida keerulisi struktuure (massiive, objekte) stringiks andmebaasis hoidmiseks. WordPress kasutab seda teema seadete, pluginate andmete ja vidinate puhul. String s:26:"http://old-domain.com" tähendab „26 märgi pikkune string". Kui asendad domeeni lühema või pikemaga, ei vasta pikkus kirjes s:26 enam tegelikule sisule ja WordPress ei suuda andmeid lugeda. Pluginad (Better Search Replace, Search & Replace) arvutavad pikkuse automaatselt ümber. Otsene SQL-asendus seda ei tee.

Kas ma pean kasutama phpMyAdmini või võin kasutada WP-CLI?

WP-CLI on suurepärane alternatiiv, kui sul on SSH-juurdepääs. Käsk wp search-replace 'old-domain' 'new-domain' teeb sama asja, kuid automaatse serialiseerimise käsitlemisega. See on tegelikult turvalisem kui phpMyAdmin, sest WP-CLI töötab läbi WordPressi API, mitte otse MySQL-iga. Samas ei paku kõik hostiteenuse pakkujad soodsamatel pakettidel SSH-juurdepääsu, samas kui phpMyAdmin on peaaegu kõikjal saadaval.

Kas ma saan asendada ainult kindlates postitustes, mitte kogu andmebaasis?

Jah, lisa SQL-päringule WHERE tingimus. Näiteks teksti asendamiseks ainult kindla kategooria postitustes: leia esmalt kategooria ID, seejärel:

1> UPDATE wp_posts SET post_content =
2> REPLACE(post_content, 'old', 'new')
3> WHERE ID IN (
4> SELECT object_id FROM wp_term_relationships WHERE term_taxonomy_id = 12
5> );
6>

Kuid palju lihtsam on teha täielik asendus kuiva käitusega Better Search Replace'is; plugin näitab tabelit ja vastete arvu ning saad mittevajalikud tabelid käsitsi märkest eemaldada.

Mida teha, kui sait lakkab pärast URL-i asendamist laadimast?

Esiteks, ära paanitse. Teiseks, taasta andmebaas oma varukoopiast (sa ju tegid varukoopia, eks?). Kolmandaks, tõenäoline põhjus on katkised serialiseeritud andmed. Kasuta Better Search Replace'i pluginat, mis on spetsiaalselt loodud domeeni asendamiseks ja käsitleb serialiseerimist õigesti. Pärast andmebaasi taastamist käivita asendus selle kaudu.

Millist otsingu ja asendamise meetodit valida: lõplik kokkuvõte

Valik sõltub kolmest tegurist: mida sa muudad, kui suur on sait ja kui mugavalt sa end SQL-iga tunned.

  • Tekst mõnes postituses → phpMyAdmin käsuga UPDATE wp_posts. Kiire, kuid ilma eelvaateta.
  • Täielik domeenivahetus või HTTPS-ile migreerimine → Better Search Replace. Kuiv käitus näitab kõiki mõjutatud ridu enne tegelikku asendust ning sisseehitatud serialiseerimise käsitlemine hoiab ära katkised andmed. See on migratsioonide kuldstandard.
  • Vajadus sisseehitatud varukoopia järele → Search & Replace. Loob enne asendamist andmebaasist tõmmise ja suudab selle taastada.

Kuldreegel jääb muutumatuks: varunda, varunda ja varunda veel kord, enne kui andmebaasi üldse puutud. Üksainus UPDATE käsk ilma varukoopiata võib su saidi rivist välja lüüa, kuid varukoopiaga on see lihtsalt töötav tööriist, mis säästab tunde rutiinset tööd.