In het vorige deel van deze serie heb ik de manieren onderzocht waarop je kindthema's kunt gebruiken om sites te maken met behulp van je themakader. In deze tutorial bekijk ik gelegenheden waarbij u mogelijk plug-ins maakt.
Het kan soms moeilijk zijn om te beslissen of u een plug-in of uw kindthema's wilt gebruiken functions.php
bestand wanneer u functionaliteit wilt toevoegen aan een site die uw framework gebruikt.
Toen ik besloot wat ik moest doen, stelde ik mezelf enkele vragen, zoals gedocumenteerd in deze infographic:
Dit zal u helpen beslissen of u het functiedossier van uw kind of ouderthema, een plug-in of uw starterskindthema zou moeten gebruiken.
Als de functionaliteit die u toevoegt veel code toevoegt, nuttig zou zijn voor anderen, of zal worden gebruikt op andere sites die u ontwikkelt maar niet allemaal, is het schrijven van een plug-in over het algemeen het beste idee.
Als je hebt besloten dat je een plug-in nodig hebt, dan kun je gebruik maken van de haken die je hebt toegevoegd aan je framework om ze krachtiger te maken. Bijvoorbeeld:
wptp_above_content
actiehaak om een broodkruimelpad boven de inhoud op elke pagina weer te geven.wptp_in_header
of wptp_sidebar
actie haken.wptp_sidebar
of wptp_after_content
haken.De lijst gaat verder!
Uiteraard zullen er ook plug-ins zijn die geen gebruik maken van de haken van je frame, in plaats daarvan activeren via kern WordPress haken, maar je eigen hooks geven je extra opties.
Een voorbeeld is een navigatie-plug-in die ik heb gemaakt om te gebruiken met mijn eigen framework. Dit is alleen geactiveerd op Pages en controleert eerst waar de huidige pagina zich in de hiërarchie bevindt. Als de pagina onderliggende pagina's of bovenliggende pagina's bevat, wordt de pagina op het hoogste niveau in die hiërarchie weergegeven met een lijst met onderliggende pagina's van de pagina, zodat u lokaal kunt navigeren.
Ik heb dit op client-sites gebruikt en als bijlage aan de before_content
haak of de zijbalk
haak, of soms beide, met extra voorwaardelijke tags.
De plug-in gebruikt twee functies: de eerste, wptp_check_for_page_tree ()
, zoekt waar de huidige pagina zich in de paginaboom bevindt:
functie wptp_check_for_page_tree () // begin met het controleren of we op een pagina staan (is_page ()) global $ post; // Controleer vervolgens of de pagina ouders heeft als ($ post-> post_parent) // de lijst met voorouders ophalen $ parents = array_reverse (get_post_ancestors ($ post-> ID)); // haal de bovenliggende voorouder terug $ ouders [0]; // retourneer de id - dit is de bovenste voorouder als deze er is, of de huidige pagina als niet $ post-> ID retourneert;
De volgende, wptp_list_subpages ()
, controleert of we op een pagina staan (maar niet op de startpagina) en voert dan het wptp_check_for_page_tree ()
functie en geeft op basis van het resultaat de lijst met pagina's weer:
function wptp_list_subpages () // niet uitvoeren op de hoofdblogpagina if (is_page () &&! is_home ()) // voer de functie wptp_check_for_page_tree uit om de pagina op het hoogste niveau $ ancestor = wptp_check_for_page_tree () op te halen; // stel de argumenten in voor kinderen van de voorouderpagina $ args = array ('child_of' => $ ancestor, 'depth' => '-1', 'title_li' => ",); // stel een waarde in voor get_pages om te controleren of het leeg is $ list_pages = get_pages ($ args); // controleer of $ list_pages waarden heeft als ($ list_pages) // open een lijst met de voorouderpagina bovenaan?>
Nadat u de plug-in hebt geïnstalleerd en geactiveerd, moet u deze activeren in uw kindthema, dat u doet door het volgende toe te voegen aan de functions.php
het dossier:
add_action ('wptp_sidebar', 'wptp_list_subpages');
Natuurlijk kunt u een andere actiehaak gebruiken als u de lijst ergens anders wilt uitvoeren.
Plug-ins vormen een ander onderdeel van het ecosysteem dat u maakt als onderdeel van uw framework. U kunt plug-ins maken die speciaal zijn ontworpen om te worden geactiveerd via de haken die u aan uw framework hebt toegevoegd, zoals ik hierboven heb aangetoond.
Het is echter de moeite waard om wat tijd door te brengen voordat je een plug-in schrijft, om te bepalen of dat het juiste is: als je twijfelt, raadpleeg dan de infographic eerder in dit bericht om je te helpen beslissen.