{"id":228660,"date":"2022-10-27T10:03:00","date_gmt":"2022-10-27T07:03:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=228660"},"modified":"2022-11-09T03:37:59","modified_gmt":"2022-11-09T00:37:59","slug":"wordpressi-metaandmete-assotsiatsioon-seotud-ueksused","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/et\/wordpressi-metaandmete-assotsiatsioon-seotud-ueksused\/","title":{"rendered":"WordPressi metaandmete assotsiatsioon: seotud \u00fcksused"},"content":{"rendered":"\n<p>Siinkohal oleme k\u00e4sitlenud, kuidas pistikprogrammis oleme luua (mis, nagu oleme \u00f6elnud, on lihtsalt v\u00e4ljam\u00f5eldud s\u00f5na teise konkreetse idee jaoks). Nimelt on meil kasutaja ja kohandatud postituse t\u00fc\u00fcp ehk raamat. Ja siit hakkame v\u00f5tma kaks eraldi olemit ning \u00fchendama ja t\u00f6\u00f6tama sellega, mida me nimetame WordPressi metaandmete \u00fchenduseks.<\/p>\n<p>Kuid enne seda on oluline m\u00f5ista kahte t\u00fc\u00fcpi metaandmeid, millega me t\u00f6\u00f6tame, ja kahel viisil (v\u00f5i kolmel viisil, olenevalt sellest, kuidas te neid vaatate), kuidas saame metaandmeid seostada.<\/p>\n<p>Nagu ka seeria \u00fclej\u00e4\u00e4nud postituste puhul, ei ole see m\u00f5eldud iga tabeli m\u00f5istmise p\u00f5hjalikuks sukeldumiseks ega API funktsioonide s\u00fcvenemiseks. Selle asemel uurime saadaolevat, kasutame neid ja j\u00e4tame tulevaste postituste (v\u00f5i v\u00f5ib-olla kommentaaride arutelude) jaoks t\u00e4psemad \u00fcksikasjad.<\/p>\n<h2>WordPressi metaandmete assotsiatsioon<\/h2>\n<p>Metaandmed ei ole WordPressi jaoks eksklusiivsed. T\u00f5en\u00e4oliselt teate seda. <a href=\"https:\/\/en.wikipedia.org\/wiki\/Metadata\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Ja seda m\u00e4\u00e4ratletakse sageli j\u00e4rgmiselt<\/a> :<\/p>\n<blockquote>\n<p>Teave teabe v\u00f5i andmete kohta.<\/p>\n<\/blockquote>\n<p>Ja see on hea viis seda v\u00e4ljendada. WordPress pakub erinevaid andmebaasitabeleid, mida saame kasutada WordPressis teatud muud t\u00fc\u00fcpi \u00fcksuste kohta teabe edastamiseks. Kasutame m\u00f5nda neist hiljem selles postituses, kuid piisab, kui \u00f6elda, et <a href=\"https:\/\/codex.wordpress.org\/Database_Description\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">WordPress pakub<\/a> :<\/p>\n<ul>\n<li>kommentaari metaandmed,<\/li>\n<li>postitada metaandmeid,<\/li>\n<li>termini metaandmed,<\/li>\n<li>ja kasutaja metaandmed<\/li>\n<\/ul>\n<p>Ja k\u00f5ik see on karbist v\u00e4ljas saadaval.<\/p>\n<p>\u00dcks WordPressi metaandmete tabelitest.<\/p>\n<p>K\u00f5igi nende API-d on j\u00e4rjepidevad, mis on ka tore. Kuid j\u00e4llegi, me tegeleme selle postituse l\u00f5puni vaid paariga neist.<\/p>\n<h3>1 Metaandmete tabelid<\/h3>\n<p>Meie n\u00e4ites kasutame \u00fchte v\u00f5i m\u00f5lemat kahest j\u00e4rgmisest tabelist:<\/p>\n<ol>\n<li><a href=\"https:\/\/codex.wordpress.org\/Database_Description#Table:_wp_postmeta\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">wp_postmeta<\/a><\/li>\n<li><a href=\"https:\/\/codex.wordpress.org\/Database_Description#Table:_wp_usermeta\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">wp_usermeta<\/a><\/li>\n<\/ol>\n<p>T\u00f5si, teie installis v\u00f5ib neil olla erinev eesliide, kuid j\u00e4relliide on sama ja saate idee.<\/p>\n<p>Teiseks kasutame metaandmete seostamiseks seotud API funktsioone. Vaatleme neid koodis, kui seostame andmeid oma kasutaja ja kohandatud postituse t\u00fc\u00fcbi (v\u00f5i meie autori ja raamatute vahel, kui soovite kasutada t\u00e4psemat terminoloogiat).<\/p>\n<p>Olgu siis. Kogu see postituse esimene osa loob vaid aluse sellele, milliseid WordPressi aluseks oleva infrastruktuuri osi me kasutama hakkame. K\u00f5ike seda arvesse v\u00f5ttes vaatame, kuidas saaksime selle asja programmiliselt millekski kasulikumaks muuta.<\/p>\n<h3>2 Metaandmete seostamine<\/h3>\n<p>WordPressi metaandmete seose idee k\u00f5lab keerulisem kui see on. M\u00f5elge sellele j\u00e4rgmiselt:<\/p>\n<ul>\n<li>Kuidas saame kahte tabelit arvestades jagada teavet kahe olemi vahel, mis annavad \u00fchele teada teisest?<\/li>\n<\/ul>\n<p>N\u00e4iteks, kuidas saame kasutaja metaandmetest postituse metaandmetest teada anda. V\u00f5i kuidas saaksime postituse metaandmetel midagi seotud kasutaja metaandmetest teada anda?<\/p>\n<p><a href=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-167597-61e7a5d09f770.jpg\" data-rel=\"lightbox\"><img decoding=\"async\" class=\"SDStudio-light-box-enable SDStudio-editor-tools-md-imp\" src=\"https:\/\/wordpress.mediadoma.com\/wp-content\/uploads\/2022\/01\/post-167597-61e7a5d09f770.jpg\" alt=\"WordPressi metaandmete assotsiatsioon: seotud \u00fcksused\" ><\/a><\/p>\n<p>K\u00f5rgel tasemel teeme seda tegelikult: anname \u00fchele olemile teada teise olemasolust ja seostame selle teisega. V\u00f5i v\u00f5ib minna ka teistpidi. Olenevalt teie rakendusest v\u00f5ib \u00fcks olla kasulikum kui teine.<\/p>\n<h4>1 \u00dchesuunaline<\/h4>\n<p>Kui r\u00e4\u00e4gime \u00fchesuunaliste WordPressi seoste loomisest, r\u00e4\u00e4gime tavaliselt ideest, et ainult \u00fcks olem on teisest teadlik. See t\u00e4hendab, et kasutaja v\u00f5ib postitusest ainult teadlik olla.<\/p>\n<p>Nii et saaksime seadistada p\u00e4rast postituse loomist, n\u00e4iteks kui k\u00f5nealune kasutaja on <a href=\"https:\/\/gist.github.com\/tommcfarlin\/c1245410fdf288edd11c9547711dd76c#file-01-post-aware-of-user-php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">\u00e4sja loodud<\/a> postitusest teadlik :<\/p>\n<pre><code>&lt;?php\n\n\/\/ Using post title as the value, but it's just an example.\nadd_user_meta( $user_id, $post_id, $post_title );<\/code><\/pre>\n<p>V\u00f5i t\u00e4hendab see seda, et postitus on kasutajast teadlik:<\/p>\n<pre><code>&lt;?php\n\n\/\/ User user email address a value but just an example.\nadd_post_meta( $post_id, $user_id, $email_address );<\/code><\/pre>\n<p>Aga kuidas ka ei vaataks, \u00fchendus l\u00e4heb ainult \u00fchte teed.<\/p>\n<p>Ja kuigi suhe l\u00e4heb \u00fchtepidi, ei pea see nii olema. See t\u00e4hendab, et m\u00f5lemad \u00fcksused v\u00f5ivad olla \u00fcksteisest teadlikud.<\/p>\n<h4>2 Kahesuunaline<\/h4>\n<p>Kuna metaandmete API-dega on nii lihtne ja j\u00e4rjepidev t\u00f6\u00f6tada, ei ole nendega raske t\u00f6\u00f6tada. Iga\u00fcks neist n\u00f5uab tavaliselt v\u00e4hemalt kahte j\u00e4rgmistest:<\/p>\n<ol>\n<li>ID, millega metaandmed on seotud,<\/li>\n<li>metav\u00f5ti, mida saab kasutada teabe otsimiseks,<\/li>\n<li>v\u00e4\u00e4rtus, mis salvestab ID ja postitusega seotud teabe.<\/li>\n<\/ol>\n<p>Nagu n\u00e4gime, s\u00f5ltub teie valitud ID ja v\u00f5tme valik sageli teie rakendusest.<\/p>\n<p>Siiani oleme vaadanud, kuidas luua \u00fchesuunalist \u00fchendust. Kahesuunaline assotsiatsioon pole midagi muud. Selle asemel, et \u00fcht olemit teisest teadvustada, teadvustame m\u00f5lemad \u00fcksused teisest:<\/p>\n<pre><code>&lt;?php\n\n\/**\n * Using this association will give you the ability to query for information \n * both on posts and users and then work with the data accordingly.\n *\/\nadd_user_meta( $user_id, $post_id, $post_title );\nadd_post_meta( $post_id, $user_id, $email_address );\n<\/code><\/pre>\n<p>Kuid see ei ole otsus, mida tuleks teha ainult selle p\u00e4rast. Selle asemel tasub l\u00e4bi m\u00f5elda m\u00f5ned p\u00f5hjused, miks v\u00f5iksite \u00fche v\u00f5i teise valida.<\/p>\n<h3>Probleemi l\u00e4bi m\u00f5tlemine<\/h3>\n<p>Kui r\u00e4\u00e4kida selliste probleemide lahendamisest, siis pole kindlat lahendust s\u00f5nadega \u201ete peaksite selle [sel viisil] l\u00f5plikult lahendama&quot;, mis tahes viisil see ka poleks. Selle asemel peate endalt k\u00fcsima selliseid k\u00fcsimusi nagu \u201emis teeb Lihtsaim viis nende andmete haldamiseks?<\/p>\n<p>N\u00e4iteks kui olete peamiselt huvitatud kasutajate haldamisest, siis v\u00f5ib-olla on teil vaja ainult seda, et kasutaja metaandmed oleksid teadlikud mis tahes olemi kohta, millega need on seotud. Nii otsite kasutaja kustutamisel kindlasti \u00fcles ka temaga seotud olemid kasutaja metaandmete tabeli kaudu ja kustutate ka need.<\/p>\n<p>Samamoodi toimiks sama funktsionaalsus m\u00f5lemas suunas. See t\u00e4hendab, et nii nagu soovite veenduda, et kasutaja kustutamisel kustutatakse ka tema postitused, v\u00f5ite soovida ka kasutaja kustutamist (v\u00f5i muutmist), kui m\u00f5ni tema postitustest eemaldatakse. Ja kui see nii on, siis kahesuunaline assotsiatsioon seda v\u00f5imaldab.<\/p>\n<p>Kuna teil on antud postituse ID ja antud kasutaja ID ning ka teie m\u00e4\u00e4ratud metav\u00f5tmed, on v\u00f5imalikud peaaegu igat t\u00fc\u00fcpi p\u00e4ringud, mida saate esitada kas WordPressi metaandmete API v\u00f5i WP_Query <a href=\"https:\/\/codex.wordpress.org\/Class_Reference\/WP_Query\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">v\u00f5i<\/a> isegi <a href=\"https:\/\/codex.wordpress.org\/Class_Reference\/WP_User_Query\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">WP_User_Query<\/a> kaudu. .<\/p>\n<h2>L\u00f5pp<\/h2>\n<p>L\u00f5ppkokkuv\u00f5ttes loodan, et see seeria on andnud \u00fclevaate sellest, kuidas mitte ainult WordPressi metaandmete seoseid luua, vaid ka abstraktselt m\u00f5elda WordPressi kontseptsioonidele, kuna see on seotud teie pistikprogrammides ja veebirakendustes k\u00f5rgema taseme juurutuste loomisega.<\/p>\n<p>Neile, kes on huvitatud, kaalun selle seeria avaldamist v\u00e4ikese 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\u00e4\u00e4rt loomiseks<\/p>\n<h3>Tahad rohkem?<\/h3>\n<h2>Sarja postitused<\/h2>\n<ol>\n<li><a href=\"https:\/\/tommcfarlin.com\/wordpress-metadata-association\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">WordPressi metaandmete assotsiatsioon: kuidas seda teha<\/a><\/li>\n<li><a href=\"https:\/\/wordpress.mediadoma.com\/et\/wordpressi-kasutajate-programmiline-loomine\/\" title=\"WordPressi kasutajate programmiline loomine\">WordPressi kasutajate programmiline loomine<\/a><\/li>\n<li><a href=\"https:\/\/wordpress.mediadoma.com\/et\/wordpressi-postituste-tueuebid-abstraktsioon-ueksuste-jaoks\/\" title=\"WordPressi postituste t\u00fc\u00fcbid: abstraktsioon \u00fcksuste jaoks\">WordPressi postituste t\u00fc\u00fcbid: abstraktsioon \u00fcksuste jaoks<\/a><\/li>\n<li><a href=\"https:\/\/tommcfarlin.com\/wordpress-metadata-association-entities\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">WordPressi metaandmete assotsiatsioon: seotud \u00fcksused<\/a><\/li>\n<\/ol>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Siin hakkame v\u00f5tma kahte eraldi olemit ning \u00fchendama ja t\u00f6\u00f6tama sellega, mida me nimetame WordPressi metaandmete \u00fchenduseks.<\/p>\n","protected":false},"author":1,"featured_media":220451,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[718,894,842,863],"tags":[1165],"class_list":["post-228660","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-arendaja","category-kood","category-opetused","category-wordpress-4","tag-affiai-et"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts\/228660","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/comments?post=228660"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/posts\/228660\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/media\/220451"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/media?parent=228660"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/categories?post=228660"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/et\/wp-json\/wp\/v2\/tags?post=228660"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}