✅ WEB- och WordPress -nyheter, teman, plugins. Här delar vi tips och bästa webbplatslösningar.

Skicka variabler till en WordPress-mall effektivt

14

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_downloadsom 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_templateförväntar sig filen att hitta filen download-home.phpi katalogen partsi 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.

Inspelningskälla: startfunction.com

Denna webbplats använder cookies för att förbättra din upplevelse. Vi antar att du är ok med detta, men du kan välja bort det om du vill. Jag accepterar Fler detaljer