Een van de fouten die veel ontwikkelaars maken bij het maken van shortcodes (in thema's en plug-ins) is altijd laden van alle scripts en stijlen. Omwille van de efficiëntie, en ook om conflicten beter te voorkomen, zouden scripts en stijlen dit moeten doen enkel en alleen worden geladen wanneer ze nodig zijn. Dit is een erg handige functie waarmee u elke gewenste actie kunt uitvoeren, zoals het laden van scripts en stijlen, en alleen wanneer, een bericht heeft een bepaalde shortcode.
De functies zijn echt vrij eenvoudig. Het enige wat we gaan doen, is een korte code als parameter doorgeven en vervolgens de inhoud van de huidige post voor die korte code controleren
Je kunt deze code in je plakken functions.php of uw eigen plugin-bestand.
// controleer de huidige post op het bestaan van een korte code functie has_shortcode ($ shortcode = ") $ post_to_check = get_post (get_the_ID ()); // false omdat we eerst door de inhoud van de post moeten zoeken $ found = false; // als er geen korte code is opgegeven, retourneert u false als (! $ shortcode) return $ found; // de inhoud van de post voor de korte code controleert if (stripo's ($ post_to_check-> post_content, '['. $ shortcode) ! == false) // we hebben de korte code gevonden $ found = true; // retourneren onze definitieve resultaten return $ found;
Het eerste wat we doen is een parameter doorgeven aan de functie genaamd $ shortcode en we stellen het als leeg. Vervolgens krijgen we het post-object van het momenteel weergegeven bericht. We doen dit door de functie get_post () te gebruiken om het post-object van de opgegeven ID, die we verkrijgen met get_the_ID (), terug te halen uit de database. Zodra we het post-object in een variabele hebben opgeslagen, $ post_to_check, we kunnen de inhoud van de opgegeven korte code doorzoeken
Nadat we het post-object hebben opgehaald, stellen we de $ gevonden veranderlijk in onwaar, en zorg dan dat $ shortcode parameter is niet leeg en als dat het geval is, verlaten we de functie door de $ gevonden variabele als false.
Nu zijn we klaar om de inhoud van de post te doorzoeken op de gewenste korte code. We doen dit door de functie stripos () te gebruiken. Deze functie heeft twee parameters nodig, de tekenreeks waarin gezocht moet worden (de hooiberg) en de tekenreeks waarnaar moet worden gezocht (de nodig hebben). In het geval dat onze hooiberg de inhoud van de post is, waarmee toegang wordt verkregen $ Post_to_check-> POST_CONTENT, en de naald is de korte code die we als parameter hebben doorgegeven aan onze aangepaste functie. Merk op dat we de afsluitende "]" van de naaldparameter hebben achtergelaten; dit komt omdat we rekening moeten houden met korte codes die parameters accepteren en dus niet de sluitingshaak hebben direct na de korte codenaam.
Als stripos () vindt de korte code, we stellen de $ gevonden verander in waar en retourneer vervolgens onze resultaten. Dat is het, onze functie is voltooid.
Deze functie kan overal in uw themasjablonen worden gebruikt (niet alleen in de lus) en is buitengewoon handig voor het selectief laden van scripts en stijlen.
Om te controleren of het huidige bericht een specifieke korte code heeft, kunt u de functie als volgt gebruiken:
if (has_shortcode ('your_short_code')) // voer hier acties uit
Waarschijnlijk een van de meest voorkomende plaatsen waar je deze functie zou gebruiken, is in je header.php bij het laden van stijlen en scripts, zoals:
if (has_shortcode ('contactformulier')) wp_enqueue_style ('contactfom', get_bloginfo ('template_directory'). 'includes / contactform.css'); wp_enqueue_script ('contactfom', get_bloginfo ('template_directory'). 'includes / contactform.js');
Wanneer plug-ins en thema's die geen gebruik maken van goede coderingsnormen zo overvloedig zijn, is het belangrijk dat we altijd streven naar ontwikkeling met hoge kwaliteitsnormen in het achterhoofd, zodat we kunnen helpen zoveel mogelijk conflicten met scripts en stijlen te voorkomen. Een van de manieren waarop we dit kunnen doen, is door alleen scripts / stijlen te laden voor onze korte codes wanneer ze echt nodig zijn.
Lees hier meer over het gebruiken en maken van shortcodes in uw projecten!