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

Täydellinen viite tarkennettujen mukautettujen kenttäryhmien ja kenttien lisäämiseen koodin mukaan

19

Advanced Custom Fields (ACF) -laajennus tukee täysin kenttien ja ryhmien määrittämistä PHP-koodin mukaan teemassasi tai laajennuksessasi. Tämän tekemisen etuna on, että kaikki kentäsi ovat käytettävissä riippumatta WordPress-esiintymästä, jota käytät (jos esimerkiksi sinun on vaihdettava paikallisen, testipalvelimen ja live-palvelimen välillä). Voit määrittää kaikki kentät ACF:n järjestelmänvalvojassa ja viedä ne PHP:hen vientityökalulla.

Täydellinen viite tarkennettujen mukautettujen kenttäryhmien ja kenttien lisäämiseen koodin mukaan

Jos kuitenkin teet tämän usein, saatat huomata, että ACF:n PHP-vienti sisältää paljon koodia, mikä tekee PHP-tiedostoistasi tarpeettoman pitkiä. Joissakin tapauksissa on parempi kirjoittaa koodi itse, vähimmäismäärällä, jotta teemasi tai laajennuksessasi olisi selkeämpi koodi. Tämän oppaan tarkoituksena on tarjota sinulle täydellinen viite ACF-kenttien ja -ryhmien lisäämiseen PHP:ssä manuaalisesti. Huomaa, että siinä ei käsitellä yksityiskohtaisesti jokaista kenttätyyppiä, koska siinä oletetaan, että tunnet jo ACF:ssä mahdolliset erilaiset kentät.

Mutta ensin; joitain varotoimia

Säilyttääksesi hyvät koodistandardit ja varmistaaksesi, että WordPress-sivustosi ei kaatuisi, sinun tulee aina tarkistaa, ovatko koodisi käyttämät toiminnot tai luokat todella olemassa. Varsinkin kun kyse on laajennuksista, jotka voidaan helposti poistaa käytöstä tai joita ei edes asenneta sivustolle, sinun tulee aina kääriä laajennuskohtainen koodisi if-testiin, joka tarkistaa, ovatko käyttämäsi toiminnot olemassa, ennen kuin käytät niitä.

ACF:n osalta voit tehdä sen tarkistamalla, onko luokka 'acf'olemassa tai onko kenttien ja ryhmien lisäystoiminto, 'acf_add_local_field_group', olemassa. Kääri jompikumpi näistä alla olevan koodin ympärille.

if (function_exists('acf_add_local_field_group')) { // Your ACF specific code here } // OR: if (class_exists('acf')) { // Your ACF specific code here }

Luurankokoodi

Metalaatikoiden (ryhmien) ja kenttien lisäämiseen käytämme koukkua nimeltä acf/init. Funktion sisällä kutsumme funktiota acf_add_local_field_group(), jonka parametrina on taulukko. Tämän taulukon sisällä on ryhmän ja sen kaikkien kenttien täydellinen asennus. Tärkeimmät ovat taulukkonäppäimet 'fields'ja 'location'. Taulukkoavaimelle 'fields'annat taulukon kaikille kentille ja avaimelle 'location'määrität asetukset, missä metalaatikon pitäisi näkyä. Tässä viestissä käsitellään yksityiskohtaisesti, mitä vaihtoehtoja sinulla on alla kullekin näistä.

Tämä on vähimmäisvaatimus ryhmän lisäämiseksi kenttiä ja sijaintia lukuun ottamatta:

Jokainen ryhmä tarvitsee yksilöllisen avaimen, mutta varsinaisella nimellä ei ole paljoa väliä (meille). Jos lisäät ryhmiä, älä unohda vaihtaa 'key'kenttää. Metalaatikon otsikko voidaan asettaa taulukon avainelementtiin, arvasit sen, 'title'. Jos lisäät useita metalaatikoita samaan paikkaan (esim. jälkimuokkauksessa), voit hallita, mikä tulee ensin antamalla eri numerot 'menu_order'.

Voit hallita metabox-suunnittelua antamalla jommankumman defaultellerin seamless. 'style'Uudella Gutenberg-editorilla tällä on kuitenkin paljon vähemmän merkitystä. Sama koskee avainta 'position', jossa ennen vanhaan saattoi sijoittaa metalaatikon viestin sisällön alle ('normal'), sivulle ('side') tai heti viestin otsikon jälkeen ('acf_after_title').

Hyvä on! Sukellaan kahteen mielenkiintoisempaan taulukon elementtiin; alkaen sijainnista – joka määrittää, missä metalaatikko näkyy.

Sijainti

Tämä kaikki liittyy siihen, mitä laitat avaimeen 'location'. Mutta ennen kuin tarkastelemme mahdollisia vaihtoehtoja, meidän on ymmärrettävä sen taulukkorakenne.

'location'hyväksyy taulukon, jossa on joukko elementtejä! Kestä. Kyllä, koska on mahdollista tarjota ja yhdistää AND- ja OR-logiikka sijainnissa (esim. "näytä tekstin muokkauksessa, mutta ei, jos viestityyppi on "kirja" tai "näytä käyttäjän muokkausnäytössä ja luo myös uusi käyttäjänäyttö, mutta molemmissa tapauksissa ei, jos nykyinen rooli on tekijä). Tapa, jolla merkitset, onko se AND tai OR, on jäsentää taulukoita. Se on paljon helpompi näyttää kuin selittää sanoin:

Näin yhdistät kaksi sijaintielementtiä JA-logiikalla (molempien on oltava tosia):

Ja tämä on tarkoitettu sijaintien yhdistämiseen OR-logiikalla (vain yhden täytyy olla totta):

Näetkö eron?

OK, jatketaan. Jokainen sijaintivaihtoehto koostuu kolmen elementin joukosta; 'param'johon lisäämme kaikki eri sijainnit, 'operator'ja 'value'. Operaattori on tapa verrata arvoa, ja se voi olla '=='yhtä suuri tai '!='ei yhtä suuri.

Käydään läpi mahdolliset vaihtoehdot yksitellen.

Sijainti postityypin mukaan

Aseta haluamasi viestityyppi 'value'. Muista, että et voi tarjota useiden viestityyppien joukkoa, vaan sinun on yhdistettävä useita näistä taulukoista JA-kokoonpanossa.

Sijainti postin tilan mukaan

Aseta haluamasi viestin tilaksi 'value'. Muista jälleen, että et voi antaa joukkoa useiden viestien tiloja, vaan sinun on annettava jokainen haluttu arvo JA- tai TAI-määrityksessä.

Sijainti sivumallin mukaan

Tämä näkyy vain, jos valittu sivu (tai mukautettu viestityyppi, jossa on sivumallituki) on valinnut toimitetun sivumallin nimen.

Sijainti määritetyn taksonomiatermin mukaan

Tämä sijainti on tarkoitettu silloin, kun viestiin on määritetty tietty termi. Sinun on annettava arvona taksonomian nimi, kaksoispiste ja termin etana.

Sijainti sivutyypin mukaan

ACF ryhmittelee sivujen erikoisominaisuudet sivutyypeiksi. Se koskee lähinnä sitä, onko nykyinen sivu ylä- tai alasivu, mutta myös kohdistussivuille, jotka on asetettu WordPressin etusivuksi tai blogisivuksi.

Sijainti: taksonomia

Paikka, jossa termiä muokataan tai lisätään taksonomiaan.

Anna taksonomian nimi muodossa 'value'. Muista, että et voi tarjota joukkoa useita taksonomioita, mutta voit tarjota 'all'kohdistaaksesi kaikki taksonomiat.

Sijainti: käyttäjä

Tämä sijainti on tarkoitettu käyttäjäprofiilin lisäämiseen tai muokkaamiseen.

Anna 'edit‘, jos haluat kohdistaa vain olemassa olevien käyttäjien muokkausnäyttöön, 'register'kohdistaaksesi vain lomakkeeseen uuden käyttäjän rekisteröinnin yhteydessä tai ‘ all'molemmille yllä oleville.

Sijainti: valikkokohta

ACF 5.6:sta lähtien voit lisätä kenttäryhmiä myös valikon kohtiin.

Voit määrittää valuekäyttämään allryhmää kaikkiin valikon kohtiin tai voit määrittää valikot joko sijainnin (teeman rekisteröidyt sijainnit) tai valikkotunnuksen mukaan. Sijainnin käyttöä varten 'location/<name>'– joten sijainnille, jonka nimi on ‘ primary‘, voit asettaa arvon käyttämään 'location/primary'ryhmääsi vain tälle sijainnille määritettyyn valikkoon. Jos haluat kohdistaa tiettyyn valikon tunnukseen, aseta arvoksi kyseisen tunnuksen merkkijono.

Sijainti: widget

ACF tarjoaa jopa sijainnin widget-asetuksissa muuttamatta widgetin ydinkoodia.

Voit kohdistaa kaikkiin widgeteihin 'all'nimellä 'value'tai kohdistaa tiettyyn widgetiin. Sinun on tiedettävä widgetin sisäinen tunnus, johon ne on rekisteröity.

Sijainti: ACF-asetukset-sivu (vain Pro)

ACF Pron avulla voit määrittää mukautettuja järjestelmänvalvojasivuja ACF:n avulla.

Anna nimi, jonka acf_add_options_pagemääritit menu_slugnimellä 'value'.

Sijainti: lohko (vain Pro 5.8+)

ACF Prossa (5.8+) on ominaisuus Gutenberg-lohkojen lisäämiseen ACF:n kentillä ja sen tuotoksen ohjaamiseen PHP:llä. Melko näppärä niille, jotka eivät ole vielä sukeltaneet mukautettujen Gutenberg-lohkojen ja vaaditun Javascriptin lisäämiseen.


Kentät

Nyt päästään mielenkiintoisempaan osaan; itse kentät. ACF tarjoaa (todella) laajan valikoiman kenttätyyppejä, ja toistan; Tämä opas ei näytä sinulle, mitä kukin kentät ovat ja miten ne toimivat tai miltä ne näyttävät.

Määrittämässäsi ydintaulukossa annat 'fields'taulukon acf_add_local_field_group(), jossa jokainen kenttä on oma taulukkonsa.

Jokaiselle kentälle vaadittavat ehdot ovat seuraavat: yksilöllinen 'key', joka voi olla mitä tahansa, ja sinun ei todennäköisesti tarvitse koskaan viitata siihen. Tarvitset myös 'name', mikä on (post, user, term) meta-avain, johon kentän arvo tallennetaan – ja tähän viittaat kenttien arvoa hakiessasi. Sinun tulisi antaa a 'label'ja lopuksi ratkaiseva seikka, 'type'joka määrittää, mitä kenttätyyppiä käsittelemme. Loput kentät riippuvat siitä, 'type'kuten näemme, kun käymme läpi kunkin kenttätyypin alla.

Tämä on runkokoodi kentän lisäämistä varten.

Muista, että tarvitset edellä mainitun jokaiseen kenttään, mutta jotta sama koodi ei toistuisi, jokainen alla oleva kenttätyyppi sisältää vain 'type'ja kaikki muut kyseiselle kenttätyypille tarvittavat elementit.

Kenttä: Tekstinsyöttö

Yksinkertaisin kenttä kaikista. Kaikki mitä todella tarvitsemme on:

Mutta voit mukauttaa tekstinsyöttöäsi edelleen antamalla jonkin seuraavista:

Kenttä: Numeron syöttö

Kenttä: Textarea

Kenttä: Alueen liukusäädin

Kenttä: Salasana

Sama kuin tekstinsyöttö, paitsi että kaikki, mitä kirjoitat siihen, peitetään *-merkillä, kuten voit odottaa salasanakentässä.

Kenttä: Kuva

Yhden kuvan valinta.

Kenttä: Tiedosto

Samanlainen kuin yllä oleva kuva, paitsi että se ei esikatsele tiedostoa.

Voit myös antaa 'mime_types' => '',ja asettaa sen esimerkiksi 'pdf,docx'sallimaan vain PDF- ja DOCX-tiedostoja.

Kenttä: WYSIWYG-editori

WYSIWYG on "What You See Is What You Get" -editori – joka oli meille tuttu ennen Gutenbergin tuloa (TinyMCE).

Parametri 'media_upload'ja 'delay'voi olla 1 (tosi) tai 0 (epätosi).

Kenttä: Valitse

Kenttä: valintaruutu

Huomaa, että 'default_value'voi olla useita vaihtoehtoja.

Kenttä: Radiopainike

Tosi- asetus 'other_choice'lisää ylimääräisen "Muu"-valintanapin, jossa on tekstisyöte, johon käyttäjä voi kirjoittaa jotain.

Kenttä: tosi/epätosi (vaihda)

Ja 'ui_on_text'on 'ui_off_text'voimassa vain, jos 'ui'on 1, koska ne määrittelevät, mitä käyttöliittymän erityisessä vaihtokytkimessä pitäisi näkyä.

Kenttä: Linkki

Antaa sinulle painikkeen linkin syöttämiseen joko kirjoittamalla tai valitsemalla WordPress-sivustosi sisällöstä (pitäisi olla tuttua linkin lisäämisestä tavalliseen WordPress-editoriin).

Kenttä: Viestiobjekti

Antaa valintaruudun, jossa voit valita WordPress-sisällöstä. Valinnan avulla voit etsiä kirjoittamalla ja kaikki sisältö on jaettu viestityypin mukaan. Voit sallia valita useita julkaisuja tai vain yhden.

Kenttä: Suhde

Kenttä: Valitse taksonomian termit

Taksonomiatermivalitsimella on neljä erilaista "tilaa" tai tyyppiä, joista kaksi mahdollistaa useita valintoja.

Kenttä: Valitse käyttäjä

Kenttä: Google Maps

Muista, että sinun on annettava kelvollinen GoogleMaps API -avain ACF:lle, jotta tämä kenttä toimisi seuraavasti:

add_filter('acf/fields/google_map/api', function($api) { $api['key'] = 'YOURAPIKEY'; return $api; });

Kenttä: Päivämääränvalitsin

Kenttä: Päivämäärä ja aika -valitsin

Kenttä: Aikavalitsin

Kenttä: Colorpicker

Kenttä: Galleria (vain ACF Pro)

Erikoistyyppiset kentät

ACF tarjoaa myös joitain kenttätyyppejä, jotka eivät sinänsä tallenna arvoa, mutta ne ovat enemmän organisaation tarkoitusperiä varten. Aseta kaikille näille 'name'tyhjäksi merkkijonoksi.

HTML-viesti

Jos sinun on yksinkertaisesti tulostettava HTML-koodia ilman, että se tallentaa arvoa, voit käyttää tyyppiä 'message'.

Toistin (vain ACF Pro)

Toistin sisältää joukon kenttiä, jotka voidaan toistaa.

Elementti sub_fieldsodottaa joukon kenttiä, aivan kuten olet määrittänyt kentät yllä.

Johtopäätös

Tämä ei suinkaan ole tyhjentävä opas, koska ACF tarjoaa niin laajan valikoiman vaihtoehtoja ja mukautuksia. Mutta sen pitäisi kattaa eniten käytetyt vaihtoehdot ja mukautetut käyttötapaukset. Itse huomaan viittaavani tähän melko usein, kun lisään ACF-kenttiä asiakkaille. Ja jopa mitä kummallisimpiin vaihtoehtoihin tämä opas riittää, jotta minun ei tarvitse paisuttaa PHP-tiedostojani ACF:n vientikoodilla. Toivottavasti tästä oli hyötyä myös sinulle!

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