✅ WEB- ja WordPress -uutiset, -teemat, -laajennukset. Täällä jaamme vinkkejä ja parhaita verkkosivustoratkaisuja.

Tietokantakyselyt tietojen nopeaan päivittämiseen, osa 1

6

Tämä ei ole ensimmäinen kerta, kun mainitsen tämän, mutta yksi haasteista, jotka liittyvät suorien tietokantakyselyjen kirjoittamiseen WordPress-tietokannan tietojen päivittämiseen, on se, että jätät itsesi avoimeksi jollekin seuraavista:

Joo, mutta siellä on API, jolla voi tehdä jotain juuri tuollaista.

Ja monissa tapauksissa se on oikein. Olen myös niiden käytön suuri fani. Mutta on aikoja, jolloin suorat, parametroidut tietokantakyselyt voivat olla optimaalisempi valinta.

Tietokantakyselyt tietojen nopeaan päivittämiseen, osa 1

Ei, se ei ole tietokanta, mutta eikö olisikin mahtavaa, jos ne näyttäisivät tältä? Kuva: Tobias Fischer Unsplashissa

Tämä riippuu tietysti ympäristöstä, jossa työskentelet projektisi vaatimusten mukaisesti.

Joten tämä on jälleen yksi viesti, joka havainnollistaa, kuinka käyttää $wpdb :tä tietojen nopeaan päivittämiseen metatietojen perusteella (ilman WP_Queryn tai WP_Meta_Queryn kaltaisten tietojen käsittelyä).

Tietokantakyselyt tietojen nopeaan päivittämiseen, osa 1

Aion jakaa tämän kahteen osaan, koska ensimmäinen toiminto, jonka aion näyttää sinulle, tekee useamman kuin yhden asian.

En ole sen fani.

Toiseksi, se on myös mahdollisuus suunnitella toimintoja uudelleen toimimaan enemmän oliokeskeisemmällä tavalla (josta olen fani ja jota olen aina iloinen voidessani edistää ).

Sallikaa minun kuitenkin toistaiseksi esitellä käsillä oleva ongelma

  1. Tuon vähän tietoa kolmannen osapuolen API:sta.
  2. Tiedot kartoitetaan wp_posts-taulukkoon sekä wp_postmeta-taulukkoon.
  3. Tietyt metatiedot ovat kriteereitä viestin tilan määräämiselle. Tai suoremmin, jos metatiedon pala on olemassa, viestin julkaisutilaksi tulee asettaa luonnos, jotta se ei näy pääkyselyssä.

Tämän ratkaisemiseksi on tapahduttava kaksi asiaa:

  1. Tarvitsemme viestien tunnukset,
  2. Ja meidän on muutettava viestien tilaa.

Ennen kuin määritämme kyselyt ja muun koodin, oletetaan, että käyttämäämme metaavainta kutsutaan luovasti nimellä acme-status. Ja sillä aloitetaan.

1 Tartu viestitunnukseen liittyvällä metaavaimella

Ensin luodaan funktio nimeltä setInactivePosts. Tämä on yleisempää kuin jos työskentelet tietyllä toimialueella, mutta ymmärrät asian.

Sitten aiomme määrittää kyselyn, joka hakee kaikki viestitunnukset, joilla on kyseinen meta-avain :

Tässä meillä on joukko tuloksia. Mutta ennen kuin teemme mitään, meidän on varmistettava, että meillä on tietoja, joita voimme käyttää.

2 Poistutko aikaisin?

Ennen kuin jatkamme tietojen päivittämistä, meidän pitäisi kuitenkin tarkistaa, onko tuloksia. Ja jos niitä ei ole?

Sitten voimme hypätä ulos.

3 Päivitä viestien tila

Mutta jos tuloksia on, meidän pitäisi iteroida niitä ja päivittää niiden viestien tila :

Miltä se sitten näyttää kaikki yhdessä?

4 Kaikki yhdessä

Kun yhdistämme tämän tarpeellista suuremman funktion, näet tämän :

Mutta seuraavassa viestissä järjestämme tämän hieman uudelleen, jotta siitä tulee enemmän oliosuuntautunut.

Huomautus tietokannan ylläpitäjille

Niille teistä, jotka tuntevat SQL-fun hyvin, tiedätte, että tämä voidaan todennäköisesti ratkaista yhdellä kyselyllä; Tämän postauksen ja sen jälkeisen postauksen tarkoitus on kuitenkin kaksijakoinen:

  1. Osoittaaksesi, kuinka $wpdb:n avulla saavutetaan jotain nopeasti,
  2. Osoittaa, kuinka proseduuraalinen menetelmä tehdä jotain jaetaan objektiorientoituneeksi tekomenetelmäksi.

Tämän jälkeen kiitos kaikista kyselyistä. 👍🏻

Tämä verkkosivusto käyttää evästeitä parantaakseen käyttökokemustasi. Oletamme, että olet kunnossa, mutta voit halutessasi kieltäytyä. Hyväksyä Lisätietoja