přidání vlastního widgetu na libovolnou stránku, příspěvek nebo šablonu v WordPress

widgety dělají WordPress opravdu flexibilní. Přidáním oblastí widgetů do svých témat umožníte uživatelům vkládat vlastní vlastní obsah, aniž byste museli psát řádek kódu.

jsou nejčastější v postranních panelech a zápatí, kde se často používají k držení widgetů, jako je widget pro vyhledávání, widget pro nejnovější příspěvky nebo možná vlastní nabídka. Ale pokud je přidáte na svou stránku a zveřejníte šablony, uděláte je ještě silnějšími.

oblasti widgetů můžete přidat do libovolného souboru šablony, který se vám líbí. Rád přidávám spoustu z nich do svých témat, na místech, jako je záhlaví, před a po hlavní navigaci a před a po obsahu. Můžete je buď přidat do části šablony (například záhlaví), kterou používá každá stránka na vašem webu, nebo můžete být konkrétnější a jednoduše je přidat do souborů šablon pro daný typ obsahu.

v tomto příspěvku vám ukážu, jak to udělat. Vytvořím podřízené téma výchozího motivu Twenty Seventeen a pak v rámci tohoto podřízeného motivu vytvořím některé nové soubory šablon: soubor šablony vlastní stránky, soubor archivu kategorie a jeden soubor šablony příspěvku.

v každém z nich přidám oblast widgetu specifickou pro tento typ obsahu, takže uživatelé ji uvidí pouze při prohlížení stránky pomocí šablony stránky, archivu kategorií nebo jediného příspěvku.

tak začněme!

Poznámka: Přidal jsem kód pro tento příspěvek na GitHub, takže si můžete zkontrolovat, zda pracujete spolu s tímto tutoriálem.

nastavení podřízeného motivu

budu používat dítě motivu twenty seventeen: pokud pracujete s vlastním motivem, můžete jej upravit přímo místo vytváření podřízeného motivu. Pokud však používáte motiv třetí strany, musíte vytvořit motiv dítěte. Je to proto, že při aktualizaci motivu budou všechny změny, které v něm provedete, ztraceny.

takže ve složce wp-content/themes vytvořte novou složku s názvem motivu. Volám můj wpmu-šablony-widgety. V rámci toho přidejte styl.css soubor a přidejte k němu:

nezapomeňte, že pokud pracujete s vlastním motivem, můžete tento krok přeskočit. A pokud používáte jiné nadřazené téma, budete muset upravit šablonu stylů, aby to odráželo. Pokud si nejste jisti, podívejte se na náš příspěvek o vytváření dětských motivů.

registrace oblastí widgetů

než budeme moci přidat oblasti widgetů do našich souborů šablon, musíme je zaregistrovat do souboru funkcí motivu. Otevřete soubor funkcí, pokud váš motiv již obsahuje, nebo pokud se jedná o nové podřízené téma, vytvořte soubor s názvem funkce.Linux.

začněme přidáním prázdné funkce pro registraci widgetů a připojením k háku widgets_init. Přidejte to do souboru funkcí:

v rámci této funkce zaregistrujeme čtyři oblasti widgetů: jednu z jednotlivých šablon archivu příspěvků a kategorií a dvě pro vlastní šablonu stránky.

začněte registrací prvního widgetu:

používá funkci register_sidebar() s řadou parametrů následovně:

  • název oblasti widgetu, která se objeví na obrazovce Správce widgetů a v Přizpůsobovači. Udělal jsem to přeložitelné.
  • jedinečné ID pro oblast widgetu.
  • Značka Pro před widget, který používá zástupné symboly pro internacionalizaci.
  • označení pro po widgetu.
  • označení pro před a za titulem widgetu, který je uzavřen v prvku h3.

takže to je první. Nyní, stále uvnitř vaší funkce, Přidejte další tři:

takže nyní máme čtyři widgety:

  • jeden po obsahu na jednotlivých příspěvcích.
  • jeden před obsahem v archivu kategorií.
  • jeden před a jeden po obsahu na naší rozšířené šabloně stránky.

pokud chcete přesunout oblasti widgetu (např. umístění archivu Kategorie za obsah nebo jeden příspěvek před obsah), měli byste je vhodně přejmenovat. Je to proto, abyste věděli, co se děje, když v budoucnu upravíte svůj kód, a vaši uživatelé vědí, kde budou oblasti widgetů zobrazeny, když k nim přidají widgety prostřednictvím obrazovky Správce widgetů. Nezapomeňte, že pokud to změníte, budete muset v dalším kroku umístit kód pro výstup widgetů na správné místo v souborech šablon, což se může lišit od místa, kde dávám svůj.

Nyní, pokud otevřete stránku Správce widgetů, uvidíte oblasti widgetů připravené pro widgety:

nově registrované oblasti widgetů na obrazovce administrátora widgetů
nově registrované oblasti widgetů na obrazovce administrátora widgetů.

pokud však do nových oblastí widgetů přidáte widgety, nezobrazí se v přední části vašeho webu. Stále je třeba je kódovat do souborů šablon.

přidání oblastí widgetu do souborů šablon

nyní přidáme kód pro výstup oblastí widgetu. Pokud pracujete s vlastním motivem, možná budete muset upravit stávající soubory šablon motivů. Pokud pracujete s podřízeným motivem (nebo váš motiv ještě nemá příslušné soubory šablon), budete muset vytvořit nové soubory.

začněme souborem šablony widgetized stránky, protože vaše téma to nebude mít.

ve složce motivu vytvořte nový soubor. Volám můj page_widgetized.Linux. Otevřete tento soubor a přidejte do něj toto:

to říká WordPress, že se jedná o vlastní šablonu stránky. Pokud se o nich chcete dozvědět více, podívejte se na našeho podrobného průvodce.

Poznámka: nepoužívejte page-widgetized jako název souboru. Je to proto, že stránka – je vyhrazená přípona v WordPress. Použijte podtržítko místo pomlčky, nebo se vyhněte použití stránky na začátku úplně, pokud chcete.

nyní pod tímto komentovaným textem zkopírujte vše ze stránky motivu (nebo nadřazeného motivu).php soubor. Alternativou je vytvořit kopii souboru a přidat komentovaný text, je to na vás.

nyní budete moci vybrat tuto šablonu při úpravách stránky na vašem webu:

selektor šablony stránky na obrazovce úpravy stránky
volič šablony stránky na obrazovce úpravy stránky WordPress.

vyberte ji pro jednu ze svých stránek, abyste si mohli vyzkoušet widgety. Tady je moje stránka:

stránka bez zobrazení widgetů
stránka bez zobrazení widgetů.

nevypadá to teď moc vzrušující, protože jsem do souboru šablony nepřidal oblasti widgetů. Pojďme na to.

v souboru šablony přidejte tento kód bezprostředně nad obsah stránky, pro oblast widgetu nad obsahem:

tím se zkontroluje, zda byla oblast widgetu vyplněna, pomocí jedinečného ID, které jste pro oblast widgetu vytvořili, když jste ji zaregistrovali v souboru funkcí. Pokud byl naplněn, vypíše obsah oblasti widgetu.

Nyní přidejte oblast widgetu pod obsah. Po obsahu (a uvnitř jakéhokoli uzavíracího prvku) přidejte toto:

uložte soubor šablony stránky.

zde je úplný kód souboru šablony mé stránky, takže můžete vidět, kde jsou oblasti widgetu před a po smyčce:

nyní to vyzkoušejte. Přidal jsem widget do každé z nových oblastí widgetu:

widgety admin obrazovky s widget přidán do dvou nových oblastí widgetu
widgety admin obrazovky s widget přidán do dvou nových oblastí widgetu.

A takhle vypadají na mé stránce:

stránka s widgety před a po obsahu
stránka s widgety před a po obsahu.

takže to je vlastní šablona stránky nastavit. Nyní je třeba upravit další dvě soubory šablon stránek(nebo je v případě potřeby vytvořit). Postupujte takto:

  • pokud pracujete s podřízeným motivem, vytvořte soubor s názvem kategorie.Linux. Zkopírujte obsah Kategorie.php soubor z nadřazeného motivu (pokud ho má) nebo archivu.php soubor (nebo index.php, pokud to nemá).
  • pokud nepracujete s podřízeným tématem, ale vaše téma nemá kategorii.soubor php, vytvořte jeden zkopírováním archivu.php soubor (nebo pokud nemáte jeden z nich, index.php soubor).
  • přidejte oblast widgetu nad obsah v archivním souboru Kategorie-znovu, bezprostředně před smyčkou.

zde je Kód pro oblast widgetu:

nyní opakujte pro jednu šablonu:

  • vytvořte jeden příspěvek.php soubor, pokud váš motiv nemá (nebo používáte podřízené téma). Zkopírujte obsah z jediného příspěvku nadřazeného motivu.php soubor do něj, nebo z dalšího souboru šablony nahoru v hierarchii šablon (single.php, singulární.php nebo index.Linux).
  • znovu přidejte oblast widgetu-tentokrát po obsahu.

zde je Kód:

Nyní, pokud přidáte widgety, zobrazí se na vašem webu. Tady je moje zobrazující seznam posledních příspěvků po jednom příspěvku:

widget oblast po jednom příspěvku

Přidání widgetu oblasti šablon vám dává flexibilitu

Widget oblasti, aby bylo možné pro uživatele motivu přidat další obsah, aniž by museli psát kód. Ale nejsou jen pro postranní panel. Přidání dalších oblastí widgetů do souborů šablon vám poskytne cílené oblasti na vašem webu, do kterých můžete přidat widgety, s jemnou kontrolou nad tím, kde se objeví.

tyto příklady můžete vzít dále, pokud chcete, přidáním oblastí widgetů do všech souborů nebo dokonce pomocí různých verzí postranního panelu.php Soubor pro různé typy obsahu. Svět je vaše ústřice!

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.