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

Täielik viide täpsemate kohandatud väljade rühmade ja väljade koodi järgi lisamiseks

5

Pistikprogramm Advanced Custom Fields (ACF) toetab väljade ja rühmade täielikku seadistamist PHP-koodi järgi teie teemas või pistikprogrammis. Selle eeliseks on see, et kõik teie väljad on saadaval sõltumata WordPressi eksemplarist, millega te töötate (näiteks kui teil on vaja lülituda kohaliku, testserveri ja reaalajas serveri vahel). Saate seadistada kõik väljad ACF-i administraatoris ja kasutada eksporditööriista eksportimiseks PHP-sse.

Täielik viide täpsemate kohandatud väljade rühmade ja väljade koodi järgi lisamiseks

Kuid kui teete seda sageli, võite märgata, et ACF-i PHP-eksport sisaldab palju koodi, mis muudab teie PHP-failid ebavajalikuks. Mõnel juhul on teemas või pistikprogrammis puhtama koodi saamiseks parem kood ise kirjutada, kasutades minimaalselt vajalikku. Selle juhendi eesmärk on pakkuda teile täielikku teavet selle kohta, kuidas PHP-s ACF-i väljade ja rühmade lisamist käsitsi välja kirjutada. Pange tähele, et see ei käsitle iga väljatüüpi üksikasjalikult, kuna eeldatakse, et olete juba tuttav erinevate ACF-i võimalike väljadega.

Aga esmalt; mõned ettevaatusabinõud

Heade koodistandardite säilitamiseks ja teie WordPressi saidi kokkujooksmise vältimiseks peaksite alati kontrollima, kas teie koodi kasutatavad funktsioonid või klassid on tegelikult olemas. Eriti kui tegemist on pistikprogrammidega, mida saab hõlpsasti desaktiveerida või isegi mitte saidile installida, peaksite alati pakkima oma pluginapõhise koodi kui-testi, mis kontrollib, kas teie kasutatavad funktsioonid on enne nende kasutamist olemas.

ACF-i puhul saate seda teha, kontrollides, kas klass 'acf'on olemas või kas väljade ja rühmade lisamise funktsioon on 'acf_add_local_field_group'olemas. Keerake üks neist alloleva koodi ümber.

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

Skeleti kood

Metakastide (rühmade) ja väljade lisamiseks kasutame konksu nimega acf/init. Funktsiooni sees kutsume funktsiooni acf_add_local_field_group(), mille parameetriks on massiiv. Selle massiivi sees on rühma ja kõigi selle väljade täielik seadistus. Kõige olulisemad neist on massiiviklahvid 'fields'ja 'location'. Massiivivõtme 'fields'jaoks esitate massiivi kõigi väljade jaoks ja võtme jaoks 'location'määrate metakasti kuvamise koha. Selles postituses kirjeldatakse üksikasjalikult, milliseid võimalikke valikuid teil on kõigi nende jaoks allpool.

See on grupi lisamise miinimum, välja arvatud väljad ja asukoht:

Iga rühm vajab ainulaadset võtit, kuid tegelik nimi ise ei oma (meie jaoks) erilist tähtsust. Kui lisate rohkem gruppe, ärge unustage välja vahetada 'key'. Metaboksi pealkirja saab määrata massiivi võtmeelemendis, arvasite ära, 'title'. Kui lisate samasse asukohta mitu metakasti (nt postituse redigeerimisel), saate määrata, milline on esimene, sisestades erinevad numbrid 'menu_order'.

Saate juhtida metakasti kujundust, sisestades kas defaultelleri seamless. 'style'Kuid uue Gutenbergi toimetaja puhul on sellel palju väiksem tähtsus. Sama kehtib ka võtme 'position'kohta, kus vanasti sai paigutada metakasti postituse sisu alla ('normal'), küljele ('side') või kohe postituse pealkirja järele ('acf_after_title').

Hästi! Sukeldume massiivi kahte huvitavamasse elementi; alustades asukohast – see määrab, kus metakast kuvatakse.

Asukoht

See kõik on seotud sellega, mida paned võtmesse 'location'. Kuid enne võimalike valikute uurimist peame mõistma selle massiivi struktuuri.

'location'aktsepteerib massiivi massiivi elementidega massiivi! Pea vastu. Jah, sest asukohas on võimalik pakkuda ja kombineerida AND- ja VÕI-loogikat (nt "näita postituse muutmisel, kuid mitte, kui postituse tüüp on "raamat" või "näita kasutaja muutmiskuval ja loo ka uus kasutajaekraan, kuid mõlemal juhul mitte, kui praegune roll on autor"). Kui see on JA või VÕI, tähistate massiive struktureerides. Seda on palju lihtsam näidata kui sõnadega seletada:

Nii ühendate kaks asukohaelementi JA-loogikaga (mõlemad peavad olema tõesed):

Ja see on mõeldud asukohtade kombineerimiseks VÕI-loogikaga (ainult üks peab olema tõsi):

Kas näete erinevust?

OK, lähme edasi. Iga asukohavalik koosneb kolmest elemendist koosnevast massiivist; 'param'kuhu lisame kõik erinevad asukohad 'operator', ja 'value'. Operaator on see, kuidas väärtust võrrelda ja see võib olla '=='võrdne või '!='mitte võrdne.

Vaatame võimalikud variandid ükshaaval läbi.

Asukoht postituse tüübi järgi

Määrake soovitud postituse tüüp 'value'. Pidage meeles, et te ei saa pakkuda mitme postituse tüübi massiivi, peate kombineerima mitu massiivi JA konfiguratsioonis.

Asukoht posti oleku järgi

Määrake soovitud postituse olekuks 'value'. Jällegi pidage meeles, et te ei saa pakkuda mitme postituse oleku massiivi, peate esitama iga soovitud väärtuse AND- või VÕI-konfiguratsioonis.

Asukoht lehe malli järgi

See kuvatakse ainult siis, kui valitud leht (või kohandatud postituse tüüp koos lehemalli toega) on valinud antud lehemalli nime.

Asukoht määratud taksonoomiatermini järgi

See asukoht on mõeldud siis, kui postitusele on määratud konkreetne termin. Peate väärtusena esitama taksonoomia nime, kooloni ja termini nälkja.

Asukoht lehe tüübi järgi

ACF rühmitab lehtede eriomadused lehekülje tüübi alla. Enamasti puudutab see seda, kas praegune leht on ema- või alamleht või mitte, aga ka WordPressi esileheks või ajaveebileheks seatud lehtede sihtimist.

Asukoht: taksonoomia

Asukoht taksonoomias termini muutmisel või lisamisel.

Esitage taksonoomia nimi kujul 'value'. Pidage meeles, et te ei saa pakkuda mitme taksonoomia massiivi, kuid saate esitada 'all'kõigi taksonoomiate sihtimiseks.

Asukoht: kasutaja

See asukoht on mõeldud kasutajaprofiili lisamiseks või muutmiseks.

Sisestage 'edit", et sihtida ainult olemasolevate kasutajate redigeerimisekraani, 'register'uue kasutaja registreerimisel ainult vormi sihtimiseks või all'mõlema ülaltoodu jaoks ".

Asukoht: menüüelement

Alates ACF 5.6-st saate menüüelementidele lisada ka väljarühmi.

Saate määrata valuegrupi allrakendamiseks kõikidele menüüüksustele või määrata menüüd asukoha (teie teemas registreeritud asukohad) või menüü ID järgi. Asukoha kasutamiseks 'location/<name>'– nii et asukoha nimega „ primary” saate määrata väärtuse, 'location/primary'et rakendada oma grupp ainult sellele asukohale määratud menüüle. Kui soovite sihtida konkreetset menüü ID-d, määrake väärtuseks selle ID string.

Asukoht: vidin

ACF pakub teile isegi asukohta vidina seadetes ilma vidina põhikoodi muutmata.

Saate sihtida kõiki vidinaid 'all'kui 'value', või sihtida konkreetset vidinat. Peate teadma selle vidina sise-ID-d, millega nad on registreeritud.

Asukoht: ACF-i valikute leht (ainult Pro)

ACF Pro abil saate kohandatud administraatori lehtede seadistamiseks kasutada ACF-i.

Sisestage nimi, acf_add_options_pagemille määrasite .menu_slug``'value'

Asukoht: plokk (ainult Pro 5.8+)

ACF Pro-l (5.8+) on funktsioon ACF-i väljadega Gutenbergi plokkide lisamiseks ja selle väljundi juhtimiseks PHP-ga. Päris vahva neile, kes pole veel sukeldunud kohandatud Gutenbergi plokkide ja vajaliku Javascripti lisamisse.


Väljad

Nüüd jõuame huvitavamasse ossa; põllud ise. ACF pakub (tõeliselt) laia valikut väljatüüpe ja ma kordan; see juhend ei näita teile, millised on need väljad ja kuidas need töötavad või välja näevad.

Põhimassiivis, mille olete ette näinud 'fields', acf_add_local_field_group()esitate massiivi, kus iga väli on oma massiiv.

Iga välja jaoks nõutav absoluutne miinimum on järgmine: kordumatu, 'key'mis võib olla ükskõik, mida soovite ja tõenäoliselt ei pea te sellele kunagi viitama. Teil on vaja ka seda 'name', milline on (postitus, kasutaja, termin) metavõti, millesse välja väärtus salvestatakse – ja see on see, millele väljade väärtust hankides viitate. Peaksite esitama a 'label'ja lõpuks olulise, 'type'mis määrab, millist väljatüüpi me käsitleme. Ülejäänud väljad sõltuvad sellest, 'type'nagu näeme, kui vaatame allolevaid väljatüüpe läbi.

See on välja lisamise skeletikood.

Pidage meeles, et vajate ülaltoodud iga välja jaoks, kuid sama koodi mittekordamiseks sisaldab iga alltoodud väljatüüp ainult 'type'ja muid selle väljatüübi jaoks vajalikke elemente.

Väli: tekstisisestus

Kõige lihtsam valdkond üldse. Kõik, mida me tegelikult vajame, on:

Kuid tekstisisestuse edasiseks kohandamiseks võite esitada ka ühe järgmistest.

Väli: numbri sisestamine

Väli: Textarea

Väli: vahemiku liugur

Väli: Parool

Sama mis tekstisisestuse puhul, välja arvatud see, et kõik, mida sellesse sisestate, on kaetud tähega *, nagu parooliväljal eeldate.

Väli: Pilt

Ühe pildi valimine.

Väli: fail

Sarnane ülaltoodud pildiga, välja arvatud see, et see ei näe faili eelvaadet.

Samuti saate selle pakkuda 'mime_types' => '',ja seadistada näiteks 'pdf,docx'ainult PDF- ja DOCX-failide lubamiseks.

Väli: WYSIWYG toimetaja

WYSIWYG on toimetaja "What You See Is What You Get" – see, millega olime tuttavad enne Gutenbergi tulekut (TinyMCE).

Parameeter 'media_upload'ja 'delay'võib olla 1 (tõene) või 0 (väär).

Väli: valige

Väli: märkeruut

Pange tähele, et 'default_value'valik võib olla mitu.

Väli: raadionupp

Tõene seadmine 'other_choice'lisab täiendava raadionupu nimega "Muu" koos tekstisisendiga, kuhu kasutaja saab midagi sisestada.

Väli: tõene/väär (lülita)

Ja kehtib ainult siis, kui 'ui_on_text'on 1, kuna need määravad, mis peaks ilmuma spetsiaalses kasutajaliidese lülituslülitis.'ui_off_text'``'ui'

Väli: link

Annab teile nupu lingi sisestamiseks kas tippides või oma WordPressi saidi sisu hulgast valides (see peaks olema tuttav tavalises WordPressi redaktoris lingi lisamisest).

Väli: Postita objekt

Annab valikukasti, kus saate valida WordPressi sisu hulgast. Valiku abil saate otsida sisestades ja kogu sisu on jagatud postituse tüübi järgi. Saate lubada valida mitu postitust või ainult ühe.

Valdkond: suhted

Väli: valige taksonoomiast terminid

Taksonoomia terminivalijal on neli erinevat "režiimi" või tüüpi, millest kaks võimaldab teha mitut valikut.

Väli: valige kasutaja

Väli: Google Maps

Pidage meeles, et selle välja toimimiseks peate esitama ACF-ile kehtiva GoogleMapsi API võtme, näiteks:

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

Väli: kuupäevavalija

Väli: kuupäeva ja kellaaja valija

Väli: ajavalija

Väli: Värvivalija

Väli: galerii (ainult ACF Pro)

Spetsiaalsed väljad

ACF pakub ka mõningaid väljatüüpe, mis iseenesest väärtust ei salvesta, kuid need on mõeldud pigem organisatsioonilisteks eesmärkideks. Kõigi nende jaoks määrake 'name'tühi string.

HTML-sõnum

Kui teil on vaja HTML-i lihtsalt välja printida, ilma et see väärtust salvestaks, võite kasutada tüüpi 'message'.

Repiiter (ainult ACF Pro)

Repiiter sisaldab rida välju, mida saab korrata.

Element sub_fieldseeldab väljade massiivi, nagu olete ülalpool väljad seadistanud.

Järeldus

See ei ole kaugeltki ammendav juhend, kuna ACF pakub nii laias valikus valikuid ja kohandusi. Kuid see peaks hõlmama enim kasutatud valikuid ja kohandatud kasutusjuhtumeid. Peronaalselt leian, et viitan sellele üsna sageli, kui lisan klientide jaoks ACF-i välju. Ja isegi kõige kummalisemate valikute jaoks piisab sellest juhendist, et ma ei peaks oma PHP-faile ACF-i ekspordikoodiga paisuma. Loodan, et sellest oli kasu ka teile!

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