Snabbtips Förbättra kortnummer med funktionen has_shortcode ()

Ett av de misstag som många utvecklare gör när man skapar kortnummer (i teman och plugins) är alltid laddar alla skript och stilar. För effektivitetens skull, och för att bättre förhindra konflikter, ska skript och stilar endast laddas när de behövs. Det här är en väldigt användbar funktion som låter dig utföra någon åtgärd du vill ha, till exempel ladda skript och format när, och bara när, ett inlägg har en särskild kortnummer.


Steg 1 Skriva funktionen

Funktionerna är verkligen ganska enkla. Allt vi ska göra är att skicka en kort kod som en parameter och kontrollera sedan innehållet i det aktuella inlägget för den korta koden

Du kan klistra in den här koden i din functions.php eller din egen pluginfil.

 // kontrollera det aktuella inlägget för förekomsten av en kortkodsfunktion has_shortcode ($ shortcode = ") $ post_to_check = get_post (get_the_ID ()); // false eftersom vi måste söka igenom inläggets innehåll först $ found = false; // om ingen kort kod tillhandahölls, returnera false om (! $ shortcode) return $ found; // kontrollera postinnehållet för kortkoden om (stripos ($ post_to_check-> post_content, '['. $ shortcode) ! == false) // vi har hittat kortkoden $ found = true; // returnera våra resultatresultat returneras $ found;

Det första vi gör är att skicka en parameter till den funktion som heter $ kortkod och vi satte det för att vara tomt. Därefter får vi postobjektet för det aktuella visade inlägget. Det gör vi genom att använda get_post () -funktionen för att returnera postobjektet för det angivna ID, vilket vi erhåller med get_the_ID (), från databasen. När vi har lagrat postobjektet i en variabel, $ post_to_check, Vi kan söka igenom innehållet för den angivna kortkoden

När vi har hämtat postobjektet ställer vi in $ funnit variabel till falsk, och se sedan till att $ kortkod parametern är inte tom, och om det är, avslutar vi funktionen genom att returnera $ funnit variabel som false.

Nu är vi redo att söka igenom inläggets innehåll för önskad kortkod. Det gör vi genom att använda funktionen stripos (). Denna funktion tar två parametrar, strängen för att söka ( höstack) och strängen för vilken du söker (the behöver). Om vår höstack är postens innehåll, som är tillgängligt med $ Post_to_check-> POST_CONTENT, och nålen är den korta koden vi passerade till vår anpassade funktion som en parameter. Observera att vi har lämnat stängning "]" av nålparametern; detta beror på att vi måste ta hänsyn till kortkoder som accepterar parametrar och sålunda kommer inte att ha stängningskonsolen omedelbart efter kort kodnamnet.

Om stripos () finner kortkoden, ställer vi in $ funnit variabel till sann och returnera sedan våra resultat. Det är det, vår funktion är komplett.


Steg 2 Använda funktionen

Denna funktion kan användas var som helst i tematemplarna (inte bara i slingan) och är extremt användbar för att selektivt ladda skript och stilar.

För att kontrollera om det aktuella inlägget har en viss kort kod kan du använda funktionen som denna:

 om (has_shortcode ('your_short_code')) // utför åtgärder här

Förmodligen är en av de vanligaste ställena du skulle använda den här funktionen i din header.php när du laddar in stilar och skript, som så:

 om (has_shortcode ('contactform')) wp_enqueue_style ('contactfom', get_bloginfo ('template_directory'). 'inkluderar / contactform.css'); wp_enqueue_script ('contactfom', get_bloginfo ('template_directory'). 'inkluderar / contactform.js'); 

Slutsats:

När plugins och teman som inte utnyttjar bra kodningsstandarder är så rikliga, är det viktigt att vi alltid strävar efter att utvecklas med höga kvalitetsstandarder i åtanke så att vi kan bidra till att förhindra så många möjliga skript / stilkonflikter som möjligt. Ett av sätten att vi kan göra detta är att bara ladda skript / stilar för våra kortkoder när de verkligen behövs.

Läs mer om hur du använder och skapar kortnummer i dina projekt här!