Op dit punt is het veilig om aan te nemen dat u al weet dat
Easy Digital Downloads (EDD) is ontwikkeld om met elk thema te werken. Er zijn echter verschillende dingen die gedaan kunnen worden om ervoor te zorgen dat uw thema meer uit EDD haalt.
In dit artikel behandelen we de basisprincipes van het maken van single product templates voor uw thema. Om duidelijk te zijn, een single product template wordt gebruikt om de front-end pagina weer te geven die wordt aangemaakt wanneer u een nieuwe Download aan uw site toevoegt.
WordPress Template Hiërarchie
Eerst moeten we een stap terug doen en onderzoeken hoe WordPress zelf werkt. WordPress thema's zijn niets meer dan een verzameling bestanden die samenwerken om uw site weer te geven. Sommige van die thema-bestanden zijn templates en templatecomponenten die samenkomen om de HTML-structuur van uw site te creëren.
WordPress gebruikt een
template hiërarchie om te bepalen wanneer en hoe die templatebestanden worden gebruikt. We zullen niet in detail treden over de volledige hiërarchie, maar hier is een visuele weergave van hoe de verschillende templatebestanden met elkaar verband houden.
Wat we hier zullen behandelen, is de Single Post template en hoe deze de manier beïnvloedt waarop uw single productpagina's worden weergegeven. Laten we beginnen.
Single Post (en Singular) Template
Rechtstreeks van
wordpress.org, hier is de template hiërarchie voor single posts:
single-{post-type}-{slug}.php– (Sinds 4.4) Eerst zoekt WordPress naar een template voor het specifieke bericht. Als het berichttype bijvoorbeeldproductis en de berichtslugdmc-12is, zou WordPress zoeken naarsingle-product-dmc-12.php.single-{post-type}.php– Als het berichttypeproductis, zou WordPress zoeken naarsingle-product.php.single.php– WordPress valt dan terug opsingle.php.singular.php– Vervolgens valt het terug opsingular.php.index.php– Ten slotte, zoals hierboven vermeld, valt WordPress uiteindelijk terug opindex.php.
Wat dit betekent is dat de naam van een thema-bestand WordPress vertelt wanneer het moet worden gebruikt en zijn "rang" in de hiërarchie voor dat specifieke gebruiksscenario.
De meest voorkomende bestandsnaam op dit punt is waarschijnlijk
single.php. De single.php template wordt gebruikt om enkele blogposts weer te geven. Zoals u zich kunt voorstellen, publiceren veel gebruikers meer blogposts op hun WordPress-sites dan al het andere. Dus hoewel single.php niet de hoogste rang heeft, is het
wel de hoogste rang voor generieke single post templates.
De kans is groot dat uw actieve thema (of bovenliggende thema, als u een
child theme gebruikt) een single.php-bestand in de hoofdmap heeft. Zo ja, dan wordt dit gebruikt om afzonderlijke blogposts weer te geven. Echter, de kans bestaat ook dat u geen single.php-bestand heeft, maar in plaats daarvan een singular.php-bestand. Dit komt steeds vaker voor. Het basisdoel ervan is om meer een "universeel" sjabloon te zijn voor alle front-end pagina's die onder de WordPress-definitie "singular" vallen, zoals blogposts, pagina's en vermeldingen voor basis aangepaste posttypen.
Laten we bespreken hoe EDD deze sjablonen gebruikt en hoe u dat kunt veranderen.
single.php
Zoals hierboven vermeld, is het
single.php-bestand een basissjabloon dat wordt gebruikt om afzonderlijke blogposts weer te geven. Wanneer de URL van een blogpost wordt bezocht, zoekt WordPress in de thema-structuur naar het juiste sjabloonbestand om die blogpost weer te geven. Het single.php-bestand is het gebruikelijke antwoord.
Met dat begrip moet u ook weten dat Posts (en Pagina's) zijn wat WordPress "posttypen" noemt. Er zijn een paar standaard posttypen ingebouwd in WordPress, maar ontwikkelaars kunnen ook hun eigen maken, aangepaste posttypen genaamd.
EDD zelf introduceert verschillende aangepaste posttypen in uw systeem, waarvan één de
Download is. Dat is de enige die we hier gaan bespreken.
Als u omhoog scrollt om de sjabloonhiërarchie voor enkele posts opnieuw te bekijken, zult u merken dat
single-{post-type}.php een hogere rang heeft dan single.php. Dat impliceert twee dingen:
- Als
single-{post-type}.phppast bij het scenario, zal het eerder worden gebruikt dansingle.php. - Als er geen
single-{post-type}.php-sjabloon bestaat, is de volgende keuzesingle.php.
Tenzij uw thema specifiek voor EDD is geschreven, valt uw situatie standaard onder het tweede scenario. Aangezien EDD's Download aangepaste posttype is geregistreerd als download, zal WordPress, tenzij uw thema een
single-download.php-bestand bevat (of de #1 positie in de enkele posthiërarchie, die we niet zullen bespreken), zoeken naar het single.php-bestand.
Dit betekent dat hoe uw blogposts ook worden weergegeven, uw EDD-download er hetzelfde uit zal zien. Als uw blogposts byline-informatie, post-naar-post navigatie of iets anders bevatten, zal dit ook voor uw downloads worden weergegeven.
Voor veel gebruikers is dit geen probleem. Voor anderen kan het ongewenste informatie toevoegen aan de productweergave. Of misschien willen sommige gebruikers gewoon niet dat hun productpagina's op dezelfde manier worden weergegeven als blogposts, wat begrijpelijk is.
single-download.php
Om WordPress te vertellen dat u uw enkele productpagina's anders wilt weergeven dan uw enkele blogposts, moet u de enkele post-sjabloonhiërarchie benutten door een
single-download.php-bestand te maken in de hoofdmap van uw actieve thema (wat uw child theme zou betekenen als u er een gebruikt).
Zodra dit bestand zich in de hoofdmap van uw actieve thema bevindt, zal het bekijken van de front-end pagina van een van uw producten leiden naar de download-specifieke template in plaats van de blogpost-template. Op dat moment heeft u controle over uw
single-download.php template en kunt u deze naar wens opbouwen.
Hier is een zeer nuttige tip voor het maken van uw
single-download.php template:
Tenzij u een thema-ontwikkelaar bent die al weet wat u doet, is de beste manier om uw eerste
single-download.php bestand te maken, het dupliceren van het single.php bestand van uw thema en vervolgens de kopie hernoemen naar single-download.php. Op dat moment verandert er niets aan de weergave van uw productpagina's. U bent echter nu vrij om het nieuwe templatebestand te bewerken en het zal alleen invloed hebben op uw productpagina's.
Als u een child theme gebruikt, betekent dit dat u de single post template van het parent theme zou moeten kopiëren om in de hoofdmap van uw child theme te plaatsen.
singular.php
Dingen worden hier een beetje ingewikkelder. Het
singular.php bestand is vrij nieuw en hoewel het niet zo wijdverbreid is als het single.php bestand, is het nog steeds populair. Zoals eerder vermeld, wordt WordPress geleverd met verschillende ingebouwde post types en ondersteunt het de creatie van aangepaste post types. *Al* deze post types worden als singulier beschouwd.
Dit betekent dat een thema geen single.php bestand hoeft te bevatten, of zelfs een page.php bestand (de template die wordt gebruikt voor het weergeven van WordPress Pagina's). Als een singular.php bestand aanwezig is en geen van de specifiekere templates beschikbaar is, zal WordPress het gebruiken voor alle post types.
Onnodig te zeggen dat dit templatebestand vaak conditionele logica moet gebruiken. Dat betekent:
Als de bezochte URL een pagina is, gebruik deze code om de pagina weer te geven. Als de bezochte URL een bericht is, gebruik die code om het bericht weer te geven.
Dit gebeurt allemaal binnen één templatebestand. Voor sites met alleen berichten en pagina's is dit eenvoudig. Wanneer u aangepaste post types introduceert, kan dit lastig worden, omdat de thema-ontwikkelaar waarschijnlijk geen voorwaarde heeft gecreëerd voor het Download aangepaste post type, dat wil zeggen als het thema niet is geschreven om EDD te overwegen.
Hoewel dit niet de plaats is om in te gaan op de details van hoe een thema te bouwen, geldt hetzelfde in dit scenario als bij het overschrijven van de
single.php voor product templates. U kunt het singular.php bestand gebruiken om een single-download.php bestand te maken (door duplicatie). Het enige verschil hier is dat u de code in dit bestand beter moet begrijpen om deze aan te passen voor gebruik met producten.
Single Product Templates Samengevat
Dit is niet bedoeld als een gids voor WordPress theming. In plaats daarvan is het doel om u te laten zien hoe EDD werkt met WordPress, zodat u single product templates kunt gebruiken om uw productpagina's weer te geven.
Als u geen WordPress-themaontwikkelaar bent, wilt u dit misschien uitbesteden aan iemand met ervaring op dit gebied. Het maken van het benodigde bestand is slechts één stap. Het maken (of bewerken) van de code in het bestand is een volledig aparte taak die enige ervaring of op zijn minst bekendheid met HTML en PHP vereist.

