Skicka variabler till en WordPress-mall effektivt
En utmaning som utvecklare av tema eller plugin möter get_template_part
är oförmågan att skicka variabler till den laddade WordPress-mallen. Det finns dock ett alternativ med locate_template
.
Översikt
I det här exemplet kommer vi att visa tre Easy Digital Download -poster. Jag har använt EDD ett tag nu och även om det har många funktioner, är det fortfarande förvånansvärt lätt.
Vi kommer att hämta posterna och spara dem i variabeln $edd_download
. Vi laddar sedan WordPress- mallen och skickar variabeln. Att skicka variabeln är faktiskt att säga för mycket: vi laddar helt enkelt mallen på ett sätt $edd_download
som variabeln har rätt omfattning för att användas i mallen som laddas.
Laddar en WordPress-mall
Denna kod kan placeras i en funktion. Du kan sedan koppla den funktionen till ett område av ditt tema med hjälp av en actionkrok eller helt enkelt kalla funktionen som en malltagg. I mina teman använder jag hooks så att användare senare kan lägga till eller ta bort innehåll. Detta är allt vi behöver för koden:
Mallkod
Nu behöver vi WordPress-mallfilen. Om du märker samtalet ovan locate_template
förväntar sig filen att hitta filen download-home.php
i katalogen parts
i temamappen.
Vi måste alltid komma ihåg att ringa wp_reset_postdata()
efter varje loop om vi ringde setup_postdata()
.
Avslutande ord
Så efter allt detta, varför är detta användbart? eftersom användare kan skapa en mall i ett underordnat tema och enkelt åsidosätta den ursprungliga mallen. Allt handlar om att göra livet enklare för dina användare. Visst, detta kan också uppnås genom filter eller skapa pluggbara funktioner, men vissa användare kan överväga att redigera en mall fokuserad på en uppgift ett renare tillvägagångssätt än att hantera en fil med många funktioner för flera olika och orelaterade uppgifter.