Trusted WordPress tutorials, when you need them most.
Beginner’s Guide to WordPress
WPB Cup
25 Million+
Websites using our plugins
16+
Years of WordPress experience
3000+
WordPress tutorials
by experts

Bästa praxis: Kontrollera om funktionen finns när du lägger till den i WordPress Theme

Nyligen frågade en användare oss hur man kontrollerar om en PHP-funktion finns innan man lägger till ny kod på din WordPress-webbplats som är beroende av den.

Det bästa med WordPress är dess flexibilitet, inklusive möjligheten att add to dina egna customize-funktioner till din website. Men ibland kanske din customize-kod inte fungerar eftersom funktionen den hänvisar till inte finns längre.

I den här artikeln visar vi hur du enkelt kontrollerar om en funktion finns befintlig innan du lägger till den i ditt WordPress-tema.

Checking if a function exists in WordPress

Varför add to ”If Function Exists” till din custom code?

WordPress är huvudsakligen skrivet i programmeringsspråket PHP. PHP är ett programmeringsspråk på serversidan som körs på din WordPress hosting providers servrar.

Eftersom PHP-koden måste vara slutförd innan sidan hämtar i dina besökares webbläsare finns det vissa limiter för den. En av dessa limiter är att om något går fel kan det förhindra att hela page hämtar.

Om en saknad funktion hindrar resten av koden från att runna i WordPress stannar den och visar ett critical error- eller fatal error-meddelande.

WordPress critical error message

Vad kan göra att en funktion plötsligt slutar fungera eller försvinner?

Det är ett vanligare error i WordPress än du kanske tror.

Låt oss till exempel säga att ett av dina WordPress-tillägg kommer med en funktion som du har addat till ditt temas header eller footer area. Om du deaktiverar tillägget försvinner funktionen och det kritiska error et uppstår på din WordPress website.

Med detta sagt, låt oss ta en titt på hur du enkelt kan kontrollera om en funktion finns innan du kör den i dina WordPress theme-filer.

Kontrollera om en funktion finns i WordPress

Lyckligtvis kommer programmeringsspråket PHP med en built-in metod för att enkelt kontrollera att det finns en funktion innan den körs.

Låt oss säga att du har en WordPress-funktion som displayed den aktuella tiden med tidszoninformation. Här är ett exempel på code snippet som du kan använda för att prova det.

Du kan lägga till den direkt i ditt temas functions.php-fil, men i den här tutorialen använder vi WPCode code snippet plugin eftersom det är det säkraste och enklaste sättet att lägga till custom code i WordPress.

Först måste du installera och aktivera WPCode Free Plugin. Om du behöver hjälp med detta kan du vänligen läsa vår Step-by-Step guide för nybörjare om hur du installerar ett plugin för WordPress.

Vid aktivering måste du gå till Code Snippets ” + Add Snippet på din WordPress dashboard. När du är där, hoverar du musen över alternativet ”Add Your Custom Code (New Snippet)” och klickar sedan på knappen ”Use snippet” som visas.

Adding Custom Code in WPCode

Detta öppnar en new page där du kan add to your custom snippet. Skriv in en rubrik som ”Display Current Time With Timezone” och klistra sedan in code snippet under i rutan Code Preview.

//display current time with timezone
function wpb_show_timezone() {
$better_time = current_time('F j, Y g:i a e');
echo "<p>The current time is " . $better_time ."</p>";
}
Paste the Code Snippet Into WPCode

Efter det måste du selecta ”PHP Snippet” från rullgardinsmenyn Code Type för att se till att koden körs korrekt.

Slutligen ska du toggle Activate till positionen On och klicka på knappen ”Save Snippet” för att lagra your new code snippet.

Activate and Save the Code Snippet

För att anropa denna funktion måste du add to följande kod var som helst i ditt WordPress theme där du vill visa aktuell tid.

<?php wpb_show_timezone(); ?>

Så här såg det ut på vår testande website.

Function runs normally

Vad skulle nu hända om koden som är responsiv för att utföra den här funktionen försvinner?

Anropet till funktionen kommer att bryta din website så här.

Critical error in WordPress

Låt oss add to en kontroll för att se till att den här koden bara körs när funktionen finns.

Återigen måste du add koden direkt till ditt temas functions.php-fil eller använda ett code snippet plugin som WPCode (rekommenderas):

<?php
if( function_exists('wpb_show_timezone')) {
wpb_show_timezone();
} else {
// do nothing
}
?>

I den här koden använder vi funktionen function_exists(). Denna funktion kontrollerar om en funktion finns och returnerar True eller False.

Vi har sedan lagt till ett if-else-villkor för att vidta lämpliga actions beroende på om funktionen är available.

När funktionen inte längre är available kommer koden helt enkelt att hoppa över den och WordPress kommer att kunna hämta resten av din website normalt.

Missing function skipped

Vi hoppas att den här artikeln hjälpte dig att lära dig hur du kontrollerar om en funktion finns i WordPress. Du kanske också vill se vår kompletta guide för felsökning i WordPress eller våra expertval för de bästa drag and drop page builders i WordPress.

If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.

Avslöjande: Vårt innehåll stöds av våra läsare. Det innebär att om du klickar på några av våra länkar, kan vi tjäna en provision. Se hur WPBeginner finansieras, varför det är viktigt, och hur du kan stödja oss. Här är vår editoriala process.

Avatar

Editorial Staff at WPBeginner is a team of WordPress experts led by Syed Balkhi with over 16 years of experience in WordPress, Web Hosting, eCommerce, SEO, and Marketing. Started in 2009, WPBeginner is now the largest free WordPress resource site in the industry and is often referred to as the Wikipedia for WordPress.

Den ultimata WordPress-verktygslådan

Få GRATIS tillgång till vår verktygslåda - en samling WordPress-relaterade produkter och resurser som varje professionell användare bör ha!

Reader Interactions

4 kommentarerLämna ett svar

  1. Syed Balkhi says

    Hey WPBeginner readers,
    Did you know you can win exciting prizes by commenting on WPBeginner?
    Every month, our top blog commenters will win HUGE rewards, including premium WordPress plugin licenses and cash prizes.
    You can get more details about the contest from here.
    Start sharing your thoughts below to stand a chance to win!

  2. Joana Pereira says

    Good call Kovshenin. I know exactly what you mean because I was using a custom function with contact form 7 (to retrieve the ip address on each form) and every time the plugin was updated, the theme broke.

    Thanks for the tip

    Joana Pereira

  3. kovshenin says

    Right, only please stop checking for dynamic_sidebar with function_exists in WordPress themes, unless you need to support WordPress 2.2 and below, which I *highly* doubt. Also with the user photo plugin, the whole approach seems to be wrong and redundant to me, it looks like many developers are missing the whole point of pluggable functions…. Oh well :)

Lämna ett svar

Tack för att du väljer att lämna en kommentar. Tänk på att alla kommentarer modereras enligt våra policy för kommentarer, och din e-postadress kommer INTE att publiceras. Vänligen använd INTE nyckelord i namnfältet. Låt oss ha en personlig och meningsfull konversation.