Siinkohal oleme käsitlenud, kuidas pistikprogrammis oleme luua (mis, nagu oleme öelnud, on lihtsalt väljamõeldud sõna teise konkreetse idee jaoks). Nimelt on meil kasutaja ja kohandatud postituse tüüp ehk raamat. Ja siit hakkame võtma kaks eraldi olemit ning ühendama ja töötama sellega, mida me nimetame WordPressi metaandmete ühenduseks.
Kuid enne seda on oluline mõista kahte tüüpi metaandmeid, millega me töötame, ja kahel viisil (või kolmel viisil, olenevalt sellest, kuidas te neid vaatate), kuidas saame metaandmeid seostada.
Nagu ka seeria ülejäänud postituste puhul, ei ole see mõeldud iga tabeli mõistmise põhjalikuks sukeldumiseks ega API funktsioonide süvenemiseks. Selle asemel uurime saadaolevat, kasutame neid ja jätame tulevaste postituste (või võib-olla kommentaaride arutelude) jaoks täpsemad üksikasjad.
WordPressi metaandmete assotsiatsioon
Metaandmed ei ole WordPressi jaoks eksklusiivsed. Tõenäoliselt teate seda. Ja seda määratletakse sageli järgmiselt :
Teave teabe või andmete kohta.
Ja see on hea viis seda väljendada. WordPress pakub erinevaid andmebaasitabeleid, mida saame kasutada WordPressis teatud muud tüüpi üksuste kohta teabe edastamiseks. Kasutame mõnda neist hiljem selles postituses, kuid piisab, kui öelda, et WordPress pakub :
- kommentaari metaandmed,
- postitada metaandmeid,
- termini metaandmed,
- ja kasutaja metaandmed
Ja kõik see on karbist väljas saadaval.
Üks WordPressi metaandmete tabelitest.
Kõigi nende API-d on järjepidevad, mis on ka tore. Kuid jällegi, me tegeleme selle postituse lõpuni vaid paariga neist.
1 Metaandmete tabelid
Meie näites kasutame ühte või mõlemat kahest järgmisest tabelist:
Tõsi, teie installis võib neil olla erinev eesliide, kuid järelliide on sama ja saate idee.
Teiseks kasutame metaandmete seostamiseks seotud API funktsioone. Vaatleme neid koodis, kui seostame andmeid oma kasutaja ja kohandatud postituse tüübi (või meie autori ja raamatute vahel, kui soovite kasutada täpsemat terminoloogiat).
Olgu siis. Kogu see postituse esimene osa loob vaid aluse sellele, milliseid WordPressi aluseks oleva infrastruktuuri osi me kasutama hakkame. Kõike seda arvesse võttes vaatame, kuidas saaksime selle asja programmiliselt millekski kasulikumaks muuta.
2 Metaandmete seostamine
WordPressi metaandmete seose idee kõlab keerulisem kui see on. Mõelge sellele järgmiselt:
- Kuidas saame kahte tabelit arvestades jagada teavet kahe olemi vahel, mis annavad ühele teada teisest?
Näiteks, kuidas saame kasutaja metaandmetest postituse metaandmetest teada anda. Või kuidas saaksime postituse metaandmetel midagi seotud kasutaja metaandmetest teada anda?
Kõrgel tasemel teeme seda tegelikult: anname ühele olemile teada teise olemasolust ja seostame selle teisega. Või võib minna ka teistpidi. Olenevalt teie rakendusest võib üks olla kasulikum kui teine.
1 Ühesuunaline
Kui räägime ühesuunaliste WordPressi seoste loomisest, räägime tavaliselt ideest, et ainult üks olem on teisest teadlik. See tähendab, et kasutaja võib postitusest ainult teadlik olla.
Nii et saaksime seadistada pärast postituse loomist, näiteks kui kõnealune kasutaja on äsja loodud postitusest teadlik :
<?php
// Using post title as the value, but it's just an example.
add_user_meta( $user_id, $post_id, $post_title );
Või tähendab see seda, et postitus on kasutajast teadlik:
<?php
// User user email address a value but just an example.
add_post_meta( $post_id, $user_id, $email_address );
Aga kuidas ka ei vaataks, ühendus läheb ainult ühte teed.
Ja kuigi suhe läheb ühtepidi, ei pea see nii olema. See tähendab, et mõlemad üksused võivad olla üksteisest teadlikud.
2 Kahesuunaline
Kuna metaandmete API-dega on nii lihtne ja järjepidev töötada, ei ole nendega raske töötada. Igaüks neist nõuab tavaliselt vähemalt kahte järgmistest:
- ID, millega metaandmed on seotud,
- metavõti, mida saab kasutada teabe otsimiseks,
- väärtus, mis salvestab ID ja postitusega seotud teabe.
Nagu nägime, sõltub teie valitud ID ja võtme valik sageli teie rakendusest.
Siiani oleme vaadanud, kuidas luua ühesuunalist ühendust. Kahesuunaline assotsiatsioon pole midagi muud. Selle asemel, et üht olemit teisest teadvustada, teadvustame mõlemad üksused teisest:
<?php
/**
* Using this association will give you the ability to query for information
* both on posts and users and then work with the data accordingly.
*/
add_user_meta( $user_id, $post_id, $post_title );
add_post_meta( $post_id, $user_id, $email_address );
Kuid see ei ole otsus, mida tuleks teha ainult selle pärast. Selle asemel tasub läbi mõelda mõned põhjused, miks võiksite ühe või teise valida.
Probleemi läbi mõtlemine
Kui rääkida selliste probleemide lahendamisest, siis pole kindlat lahendust sõnadega „te peaksite selle [sel viisil] lõplikult lahendama", mis tahes viisil see ka poleks. Selle asemel peate endalt küsima selliseid küsimusi nagu „mis teeb Lihtsaim viis nende andmete haldamiseks?
Näiteks kui olete peamiselt huvitatud kasutajate haldamisest, siis võib-olla on teil vaja ainult seda, et kasutaja metaandmed oleksid teadlikud mis tahes olemi kohta, millega need on seotud. Nii otsite kasutaja kustutamisel kindlasti üles ka temaga seotud olemid kasutaja metaandmete tabeli kaudu ja kustutate ka need.
Samamoodi toimiks sama funktsionaalsus mõlemas suunas. See tähendab, et nii nagu soovite veenduda, et kasutaja kustutamisel kustutatakse ka tema postitused, võite soovida ka kasutaja kustutamist (või muutmist), kui mõni tema postitustest eemaldatakse. Ja kui see nii on, siis kahesuunaline assotsiatsioon seda võimaldab.
Kuna teil on antud postituse ID ja antud kasutaja ID ning ka teie määratud metavõtmed, on võimalikud peaaegu igat tüüpi päringud, mida saate esitada kas WordPressi metaandmete API või WP_Query või isegi WP_User_Query kaudu. .
Lõpp
Lõppkokkuvõttes loodan, et see seeria on andnud ülevaate sellest, kuidas mitte ainult WordPressi metaandmete seoseid luua, vaid ka abstraktselt mõelda WordPressi kontseptsioonidele, kuna see on seotud teie pistikprogrammides ja veebirakendustes kõrgema taseme juurutuste loomisega.
Neile, kes on huvitatud, kaalun selle seeria avaldamist väikese ressursina PDF-vormingus koos toimiva pistikprogrammiga, mida uurida. Kui olete sellest huvitatud, siis registreeruge siin olevasse meililisti ja ma annan teile kindlasti teada, kui see on valmis. vastasel juhul kasutage seerias olevat teavet edasiliikumiseks ja millegi väärt loomiseks
