✅ WEB ja WordPressi uudised, teemad, pistikprogrammid. Siin jagame näpunäiteid ja parimaid veebisaidi lahendusi.

Andmebaasipäringud andmete kiireks värskendamiseks, 1. osa

8

See ei ole esimene kord, kui ma seda mainin, kuid üks väljakutseid, mis kaasnevad WordPressi andmebaasis teabe värskendamiseks otseste andmebaasipäringute kirjutamisega, on see, et jätate end avatud millelegi järgmisele:

Jah, aga millegi sellise tegemiseks on olemas API.

Ja paljudel juhtudel on see õige. Olen ka nende kasutamise suur fänn. Kuid on aegu, kus otsesed parameetritega andmebaasipäringud võivad olla optimaalsem valik.

Andmebaasipäringud andmete kiireks värskendamiseks, 1. osa

Ei, see ei ole andmebaas, kuid kas poleks suurepärane, kui need näeksid välja sellised? Tobias Fischeri foto saidil Unsplash

See sõltub loomulikult keskkonnast, milles te oma projekti nõudeid töötate.

Nii et see on järjekordne postitus, mis illustreerib, kuidas kasutada $wpdb -d metaandmetel põhineva teabe kiireks värskendamiseks (ilma selle käsitlemiseks kasutamata midagi nagu WP_Query või WP_Meta_Query ).

Andmebaasipäringud andmete kiireks värskendamiseks, 1. osa

Jagan selle kaheks osaks, sest esialgne funktsioon, mida ma teile näitan, teeb rohkem kui ühte asja.

Ma ei ole selle fänn.

Teiseks on see ka võimalus, kuidas saate funktsioone ümber kujundada, et need käituksid rohkem objektorienteeritud viisil (mille fänn ma olen ja mida mul on alati hea meel reklaamida ).

Praegu lubage mul siiski käsitleda probleemi

  1. Impordin natuke teavet kolmanda osapoole API-st.
  2. Teave vastendatakse nii tabelisse wp_posts kui ka tabelisse wp_postmeta.
  3. Postituse oleku määramiseks on teatud metaandmed. Või otsesemalt, kui metaandmed on olemas, peaks postituse postituse olekuks olema määratud mustand, et seda põhipäringus ei kuvataks.

Selle lahendamiseks peab juhtuma kaks asja:

  1. Meil on vaja postituste ID-sid,
  2. Ja me peame muutma postituste olekut.

Enne päringute ja ülejäänud koodi seadistamist oletame, et meie kasutatavat metavõtit nimetatakse loominguliselt acme-status. Ja sellega alustame.

1 Haarake seotud metavõtmega postituste ID-d

Esiteks loome funktsiooni setInactivePosts. See on üldisem kui siis, kui töötate konkreetses domeenis, kuid saate aru.

Seejärel seadistame päringu, mis hangib kõik postituste ID-d, millel on see konkreetne metavõti :

Siin on meil rida tulemusi. Kuid enne kui midagi ette võtame, peame veenduma, et meil on toimimiseks vajalikud andmed.

2 Kas lahkuda varakult?

Enne teabe värskendamist peaksime siiski kontrollima, kas on tulemusi. Ja kui neid pole?

Siis saame välja astuda.

3 Värskendage postituse olekut

Kuid kui tulemusi on, peaksime neid uuesti läbi vaatama ja nende postituse olekut värskendama :

Kuidas see kõik koos välja näeb?

4 Kõik koos

Kui paneme selle vajalikust suurema funktsiooni kokku, näete järgmist:

Kuid järgmises postituses korraldame selle veidi ümber, et muuta see objektorienteeritumaks.

Märkus andmebaasi administraatoritele

Kui olete SQL-fu-ga hästi kursis, siis teate, et seda saab tõenäoliselt lahendada ühe päringuga; selle postituse ja sellele järgneva postituse eesmärk on aga kahekordne:

  1. Et näidata, kuidas kasutada $wpdb-d millegi kiireks saavutamiseks,
  2. Näidata, kuidas muuta millegi tegemise protseduuriline meetod objektorienteeritud millegi tegemise meetodiks.

Sellega seoses tänan kõigi päringute eest. 👍🏻

See veebisait kasutab teie kasutuskogemuse parandamiseks küpsiseid. Eeldame, et olete sellega rahul, kuid saate soovi korral loobuda. Nõustu Loe rohkem