egyéni Widget hozzáadása a WordPress bármely oldalához, bejegyzéséhez vagy sablonjához

widgetek a WordPress-t valóban rugalmasabbá teszik. Ha widget-területeket ad hozzá a témákhoz, akkor lehetővé teszi a felhasználók számára, hogy saját egyedi tartalmukat illesszék be anélkül, hogy kódsort kellene írniuk.

ezek a leggyakoribb oldalsávok és láblécek, ahol gyakran használják, hogy tartsa kütyü, mint a keresés widget, legújabb hozzászólások widget, vagy talán egy egyéni menü. De ha hozzáadja őket az oldalához és sablonokat tesz közzé, akkor még erősebbé teszi őket.

felveheti widget területek bármilyen sablon fájl tetszik. Szeretek sokat hozzáadni a témáimhoz, olyan helyeken, mint a fejléc, a fő navigáció előtt és után, valamint a tartalom előtt és után. Hozzáadhatja őket egy sablonrészhez (például a fejléchez), amelyet a webhely minden oldala használ, vagy pontosabban is hozzáadhatja őket egy adott tartalomtípus sablonfájljaihoz.

ebben a bejegyzésben megmutatom, hogyan kell ezt csinálni. Létrehozok egy gyermek témát az alapértelmezett Twenty Seventeen témából, majd ezen a gyermek témán belül létrehozok néhány új sablonfájlt: egy egyéni oldalsablonfájlt, egy kategóriaarchívumfájlt és egy egyetlen post sablonfájlt.

ezek mindegyikében hozzá fogok adni egy adott tartalomtípusra jellemző widget területet, így a felhasználók csak akkor fogják látni, amikor egy oldalt az oldalsablon, a kategória archívum vagy egyetlen bejegyzés használatával néznek meg.

Tehát kezdjük el!

Megjegyzés: Hozzáadtam a bejegyzés kódját a GitHub-hoz, így ellenőrizheti, hogy együtt dolgozik-e ezzel az oktatóanyaggal.

a gyermek téma beállítása

a Twenty seventeen téma gyermekét fogom használni: ha a saját témájával dolgozik, akkor ezt közvetlenül szerkesztheti a gyermek téma létrehozása helyett. De ha harmadik féltől származó témát használ, létre kell hoznia egy gyermek témát. Ez azért van, mert amikor frissíti a témát, minden változtatás elvész.

tehát a wp-content/themes mappában hozzon létre egy új mappát a téma nevével. Hívom az enyém wpmu-sablon-kütyü. Ezen belül adjon hozzá egy stílust.

ne feledje, ha a saját témájával dolgozik, kihagyhatja ezt a lépést. Ha pedig másik szülő témát használ, akkor a stíluslapot úgy kell szerkesztenie, hogy az tükrözze azt. Ha nem biztos benne, nézze meg a gyermek témák létrehozásáról szóló bejegyzésünket.

a Widget területek regisztrálása

mielőtt hozzáadhatnánk a widget területeket a sablonfájlokhoz, regisztrálnunk kell őket a téma funkciófájljában. Nyissa meg a függvényfájlt, ha a témája már rendelkezik ilyennel, vagy ha ez egy új gyermektéma, hozzon létre egy függvények nevű fájlt.php.

kezdjük azzal, hogy hozzáadjuk az üres funkciót a widgetek regisztrálásához, majd a widgets_init horoghoz akasztjuk. Adja hozzá ezt a függvényfájlhoz:

ezen a funkción belül négy widget területet fogunk regisztrálni: egyet az egyes bejegyzés-és kategóriaarchívum-sablonokhoz, kettőt pedig az egyéni oldalsablonhoz.

Kezdje az első widget regisztrálásával:

ez a register_sidebar() függvényt használja, a következő paraméterekkel:

  • a widget terület neve, amely megjelenik a widget admin képernyőn és a Testreszabóban. Lefordíthatóvá tettem.
  • a widget terület egyedi azonosítója.
  • jelölés a widget előtt, amely helyőrzőket használ a nemzetköziesítéshez.
  • jelölés a widget után.
  • jelölés a widget címe előtt és után, amely egy h3 elembe van zárva.

tehát ez az első. Most, még mindig a funkción belül, adja hozzá a másik hármat:

tehát most négy widgetünk van:

  • az egyes bejegyzések tartalma után.
  • egy kategóriaarchívum tartalma előtt.
  • egy a widgetizált oldalsablonunk tartalma előtt és után.

ha át szeretné helyezni a widget területeit (például a kategória archívumát A tartalom után vagy az egyetlen bejegyzést a tartalom előtt), akkor nevezze át őket megfelelően. Ez azért van, hogy tudd, mi történik, amikor a jövőben szerkeszted a kódot, és a felhasználók tudják, hogy a widget területek hol jelennek meg, amikor a widgeteket hozzáadják hozzájuk a widgetek admin képernyőjén keresztül. Ne feledje, hogy ha ezt megváltoztatja, akkor a következő lépésben el kell helyeznie a kódot, hogy a widgeteket a sablonfájlok megfelelő helyére tegye, ami eltérhet attól, ahová az enyémet teszem.

most, ha megnyitja a widgetek admin oldalt, látni fogja a widget területek, készen áll a widgetek:

újonnan regisztrált widget területek A widgetek admin képernyőn
újonnan regisztrált widget területek A widgetek admin képernyőn.

de ha widgeteket ad hozzá az új widget-területekhez, akkor azok nem jelennek meg a webhely előlapján. Még mindig be kell kódolni őket a sablonfájlokba.

a Widget területek hozzáadása a Sablonfájlokhoz

most hozzáadjuk a kódot a widget területek kimenetéhez. Ha saját témájával dolgozik, akkor lehet, hogy csak szerkesztenie kell a meglévő témasablonfájlokat. Ha gyermek témával dolgozik (vagy a témája még nem rendelkezik a megfelelő sablonfájlokkal), új fájlokat kell létrehoznia.

kezdjük a widgetized oldalsablon fájllal, mivel a témád így sem lesz.

a téma mappában hozzon létre egy új fájlt. Az enyémet page_widgetized-nek hívom.php. Nyissa meg a fájlt, és adja hozzá ezt:

ez azt mondja a WordPress-nek, hogy ez egy egyéni oldalsablon. Ha többet szeretne tudni róluk, nézze meg részletes útmutatónkat.

Megjegyzés: Ne használja az oldalszélesítést fájlnévként. Ez azért van, mert oldal-egy fenntartott utótag a WordPress – ben. Használjon aláhúzást kötőjel helyett, vagy csak kerülje az oldal használatát az elején, ha úgy tetszik.

most a kommentált szöveg alatt másolja át mindent a téma (vagy a szülő téma) oldaláról.php fájl. Alternatív megoldás az, hogy másolatot készít a fájlról, és hozzáadja a kommentált szöveget, ez rajtad múlik.

mostantól kiválaszthatja ezt a sablont, amikor egy oldalt szerkeszt a webhelyén:

oldalsablon-választó az Oldalszerkesztő képernyőn
az oldalsablon-választó a WordPress Oldalszerkesztő képernyőn.

válassza ki az egyik oldalához, hogy kipróbálhassa a widgeteket. Itt van az oldalam:

oldal nem widgetek megjelenítésére még
oldal nem widgetek megjelenítésére még.

most nem tűnik nagyon izgalmasnak, mivel nem adtam hozzá a widget területeket a sablonfájlhoz. Csináljuk.

a sablonfájlban adja hozzá ezt a kódot közvetlenül az oldal tartalma fölé, a fenti tartalom widget területhez:

Ez ellenőrzi, hogy a widget terület lakott-e, a widget területhez létrehozott egyedi azonosító használatával, amikor regisztrálta a funkciófájlban. Ha már lakott, akkor kiadja a tartalmát a widget terület.

most adja hozzá a widget területet a tartalom alá. A tartalom után (és bármely körülzáró elem belsejében) adja hozzá ezt:

mentse el az oldalsablonfájlt.

itt található az oldalsablon fájlom teljes kódja, így láthatja, hogy a widget hol helyezkedik el a ciklus előtt és után:

most, hogy kipróbálja. Hozzáadtam egy widgetet az új widget-területekhez:

widgetek admin képernyők egy widget hozzá két új widget területek
a widgetek admin képernyők egy widget hozzá két új widget területeken.

így néznek ki az oldalamon:

oldal widgetekkel A tartalom előtt és után
oldal widgetekkel A tartalom előtt és után.

tehát ez az egyéni oldalsablon beállítása. Most szerkesztenie kell a másik két oldalsablonfájlt (vagy szükség esetén létre kell hoznia őket). Kövesse az alábbi lépéseket:

  • ha gyermek témával dolgozik, hozzon létre egy kategória nevű fájlt.php. Másolja a kategória tartalmát.php fájl a szülő témából (ha van ilyen) vagy az archívumból.php fájl (vagy index.php, ha nincs ilyen).
  • ha nem gyermek témával dolgozik, de a témának nincs kategóriája.php fájl, készítsen egyet az archívum másolásával.php fájl (vagy ha nincs ilyen, az index.php fájl).
  • adja hozzá a widget területet a kategória archív fájljának tartalma fölé – ismét, közvetlenül a hurok előtt.

itt van a widget terület kódja:

most ismételje meg ezt az egyetlen sablonhoz:

  • hozzon létre egy bejegyzést.php fájl, ha a témának nincs (vagy gyermek témát használ). Másolja a szülő téma egyetlen bejegyzésének tartalmát.php fájlba, vagy a következő sablonfájlból felfelé a sablonhierarchiában (egyetlen.php, egyes szám.php vagy index.php).
  • ismét adja hozzá a widget területet – ezúttal a tartalom után.

itt van a kód:

most, ha hozzá kütyü, akkor megjelennek a webhelyen. Itt az enyém mutatja a legutóbbi bejegyzések listáját egyetlen bejegyzés után:

widget terület egyetlen bejegyzés után

a Widget területek hozzáadása a sablonokhoz rugalmasságot biztosít

A Widget területek lehetővé teszik a téma felhasználóinak, hogy extra tartalmat adjanak hozzá anélkül, hogy kódot kellene írniuk. De nem csak az oldalsávra vonatkoznak. Extra widget területek hozzáadása a sablonfájlokhoz célzott területeket biztosít a webhelyén, amelyekhez widgeteket adhat hozzá, finom vezérléssel, ahol megjelennek.

ezeket a példákat tovább is veheti, ha úgy tetszik, widget-területeket adhat hozzá az összes fájlhoz, vagy akár az oldalsáv különböző verzióit is használhatja.php fájl különböző tartalomtípusokhoz. A világ az osztriga!

Vélemény, hozzászólás?

Az e-mail-címet nem tesszük közzé.