Néhány napja ismét WordPress-rajongók-fejlesztők találkozót tartottunk Kassán . A Halmi caffe -ban találkoztunk, ezúttal is „Egyedi meta dobozok” témában.
Három módot vizsgáltunk meg saját beviteli mezők létrehozására a WP adminisztrációjában, és a beszélgetés során hozzáadtunk néhány saját tapasztalatot, típust és generátort. Kezdtük a klasszikus WordPress függvények használatával és leírással a dokumentációban, majd az Advanced Custom Fields és CMB2 pluginekre épülő bemutatókkal folytattuk. Néhány forráskód a cikk végén 😉
Ezek a beviteli mezők speciális értékekhez használhatók, amelyeket feldolgozni és megjeleníteni szeretnénk az oldalon, a cikkben, profilban, termékben stb.
A WordPress dokumentációja szerint
Lényegében a WordPress nagyszerű funkciókkal rendelkezik, amelyek lehetővé teszik számunkra, hogy ízlésünk szerint testreszabjuk. Az egyik az add_meta_box () , amellyel saját beviteli mezőt készítünk.
A megadott paraméterek szerint megadhatjuk, hogy a beviteli mező melyik bejegyzés szerkesztési részében legyen, és azt is, hogy milyen típusú bejegyzéshez használjuk (cikk, oldal, profil…). A függvény azonban csak egy mezőt hoz létre számunkra. Továbbra is meg kell mentenie az értékét minden alkalommal, amikor menti a bejegyzést, és be kell töltenie, amikor megpróbálja szerkeszteni. Az átfogó megoldás inspirált bennünket, amelyet a dokumentáció alatti megjegyzésekben találtunk.
Ennek a beviteli mezőnek az értéke az adatbázisban tárolódik a postmeta táblában (vagy usermeta stb., a bejegyzés típusától függően) a bejegyzés azonosítójával és a metakulccsal együtt (többféle érték megkülönböztetésére szolgál). egy bejegyzéshez).
Az érték további feldolgozásához vagy közvetlen megjelenítéséhez az oldalon ezt az értéket a get_post_meta () függvény segítségével lekérjük az adatbázisból.
Konkrétan például a következőképpen:
<?php echo get_post_meta( get_the_ID(), '_my_meta_value_key', true ); ?>
Oldalankénti mintaeredmény:
Az Advanced Custom Fields beépülő modul használata
Ennek a beépülő modulnak megvan az az előnye, hogy szó szerint lehet kattintani a beviteli mezőkre a felületén.
További előnye a kiterjedt dokumentáció és hosszadalmas programozás nélkül létrehozhatunk beviteli mezőket a galériához, térképhez, dátumhoz és időhöz stb.
Az adatbázisban azonban egy kicsit eltúloz. Ha először meghatározza benne a beviteli mezőket, akkor elmenti azokat bejegyzésként (a hozzászólások táblázatában), majd az értékeket (például a beviteli mező helyzetét a szerkesztésben) a postsmeta -ban tárolja. Az oldalszerkesztések mentésekor egy beviteli mezőhöz még két sort mentett az adatbázisba. Amikor a revíziót automatikusan elmentették, még kettő volt.
Ekkor nem a klasszikus WP függvényt (get_post_meta) használjuk az érték megjelenítésére, hanem a plugin függvényt, például:
<?php the_field('acf1'); ?>
A dokumentáció szerint rövid kódot és megjelenítési értékeket is használhatunk a cikk szövegében.
A CMB2 bővítmény használata
Ennek a beépülő modulnak már nincsenek „kattintási” beállításai, mint azt megszokhattuk.
Előre elkészített osztályokat és objektumokat tartalmaz, amelyek segítségével egyedi beviteli mezőket hozhatunk létre, amelyek jelentősen megkönnyítik a kódírást. Széleskörű dokumentációt találunk hozzá, és az ACF-hez hasonlóan megkönnyíti a mezők létrehozását a különböző típusú értékekhez (dátum, idő, szín stb.).
Szeretném felhívni a figyelmet arra a lehetőségre, hogy egy átjátszóval (csoporttal) kombinálva újabb szövegszerkesztőt adjunk hozzá, így meg tudjuk különböztetni az oldalon lévő szövegrészeket, később megváltoztatni a sorrendjüket és hasonlókat. Más ingyenesen elérhető bővítmények is elérhetők ehhez a bővítményhez.
Az értékeket egy sor segítségével tárolja az adatbázisban, és a klasszikus WP funkciót használja a feldolgozásukhoz (példa):
<?php echo get_post_meta( get_the_ID(), '_yourprefix_text', true ); ?>
Generátorok
Ez néhány a találkozón említett generátorok közül. Olyan kódot generálnak, amely az alapvető WP-funkciókkal működik, további bővítmények nélkül.
- WordPress Meta Box Generator v2 Beta
- Hasty generátor (2017 júliusában érkezik)
- GenerateWP (bővített változatban érhető el)
A találkozóhoz használt kódminta
A csomagok tartalma:
- plugin, amelyben vannak példák a klasszikus WP funkciókra és a CMB2 használatára (a megfelelő működéshez aktivált CMB2 bővítmény szükséges)
- csak aktiválja a bővítményt, és az új beviteli mezők megjelennek az oldal szerkesztésében
- „teszt” téma, ami egy származtatott Twentyfifteen téma (a megfelelő működéshez telepíteni kell a Twentyfifteen témát)
- oldalsablonokat tartalmaz kódokkal a tárolt értékek megjelenítéséhez
Segített Önnek ez a cikk? Kérem, egy megosztással támogasson. 👍