in WordPress

Hier in den medienvirus WordPress Tipps stellen wir hin und wieder Code-Schnipsel bereit, um die Funktionalität von WordPress Seiten zu erweitern. Die Schnipsel werden in Dateien wie functions.php oder header.php des Themes eingefügt und tun dort ihre Arbeit. Während das für diejenigen, die wissen, wie PHP funktioniert, eine recht einfache Aufgabe ist, machen Anfänger dabei oft Fehler, die die Seite zum Absturz bringen. Vielleicht liest Du diesen Artikel, weil Dir genau das gerade passiert ist und es ist wirklich kein Drama. Wir waren alle schon mal an diesem Punkt und im Folgenden wollen wir die drei häufigsten Fehler besprechen, die beim Einfügen von Code-Schnipsel in das WordPress Backend passieren können.

Tipp: Die functions.php Datei des Themes befindet sich in  /wp-content/themes/dein-theme-name/functions.php, und diese ist nicht zu verwechseln mit der zentralen functions.php im wp/includes Ordner.

Um Code-Schnipsel richtig einzufügen, musst Du die generelle Semantik von PHP kennen:

		

// Das ist ein öffnendes PHP Tag:

<?php

// Das ist ein schließendes PHP Tag:

 ?>

Das ist deshalb wichtig zu verstehen, weil mehr als 90% der Fälle in denen WordPress nach dem Einfügen von Code nicht mehr funktioniert daher rühren, dass er schlicht am falschen Ort eingefügt wurde.

Erster häufigster Fehler

<?php

function  isvalidURL($url)
  {
    $check = 0;
        if (filter_var($url, FILTER_VALIDATE_URL) !== false)
                {
                $check = 1;
                }

        return $check;
        }

?>

Die functions.php Datei ist aufgebaut wie das Beispiel oben. In der eigentlichen Datei ist viel mehr Code aber das Prinzip ist das selbe. Ein sehr häufiger Fehler ist, den Code wie folgt einzufügen:

<?php
//Hier steht all der andere Code des Themes

//der Code wird fälschlicherweise so eingefügt:

 < ? php
 $counterstand = intval(file_get_contents("counter.txt"));

   if(!isset($_SESSION['counter_ip']))
   {
   $counterstand++;
   file_put_contents("counter.txt", $counterstand);

   $_SESSION['counter_ip'] = true;
   }

echo $counterstand;
?>
?>

Jetzt kann WordPress die gesamte Datei nicht mehr verarbeiten, da ein zweites PHP Tag geöffnet wird und das erste nicht geschlossen ist. Die richtige Methode ist entweder das schließende Tag an die richtige Stelle zu setzen, oder die öffnenden und schließenden Tags von dem eingefügten Code zu entfernen:

<?php

// Hier steht all der andere Code des Themes

?>

// nach dem schließenden Tag kommt Dein neuer Code:

<?php
 $counterstand = intval(file_get_contents("counter.txt"));

   if(!isset($_SESSION['counter_ip']))
   {
   $counterstand++;
   file_put_contents("counter.txt", $counterstand);

   $_SESSION['counter_ip'] = true;
   }

echo $counterstand;
?>
<?php

// Hier steht all der andere Code des Themes
// Dein neuer Code ohne PHP Tags:

 $counterstand = intval(file_get_contents("counter.txt"));

   if(!isset($_SESSION['counter_ip']))
   {
   $counterstand++;
   file_put_contents("counter.txt", $counterstand);

   $_SESSION['counter_ip'] = true;
   }

echo $counterstand;

// und hier das schließende Tag der gesamten Datei

?>

Zweiter häufigster Fehler:

Autoren von Tutorials haben unterschiedliche Praktiken, ihren Code bereit zu stellen. Manche haben die PHP Tags angefügt und manche nicht. Oft werden sie dazu auffordern, den Code am Ende der functions.php Datei anzufügen. Das sieht dann oft so aus:

<?php

// hier steht der Code der functions.php Datei

?>

// dann kommt Dein neuer Code:

function  readCSV($csvFile){
             $file_handle = fopen($csvFile, 'r');
             while (!feof($file_handle) ) {
                $line_of_text[] = fgetcsv($file_handle, 1024);
        }
        fclose($file_handle);
        return $line_of_text;
}

Dieser Code wird so wie er da steht von WordPress nicht als PHP erkannt und kann einen Absturz auslösen. Richtig muss es so aussehen:

<?php

// hier steht der Code der functions.php Datei
// dann kommt Dein neuer Code:

function  readCSV($csvFile)
        {
        $file_handle = fopen($csvFile, 'r');
        while (!feof($file_handle))
                {
                $line_of_text[] = fgetcsv($file_handle, 1024);
                }

        fclose($file_handle);
        return $line_of_text;
        }

?>

Dritter häufigster Fehler:

Neben falsch platzierten PHP Tags ist ein häufiger Fehler das Einfügen von Code in eine bestehende Funktion. Das ist ein Problem, da Funktionen eigenständige Gebilde sind und sensibel auf kleinste Fehler in ihrer Syntax reagieren.

Eine Funktion sieht in der Regel so aus:

<?php

function  irgendeine_funktion
        { //das ist das öffnende Tag der Funktion

        // hier steht der Code, der die Funktion zum laufen bringt

        } // das ist das schließende Tag der Funktion

?>

Ein Beispiel für einen häufig gemachten Fehler sieht so aus:

<?php

function  irgendeine_funktion
        { //das ist das öffnende Tag der Funktion

        // hier steht der Code, der die Funktion zum laufen bringt

function  readCSV($csvFile)
        {
        $file_handle = fopen($csvFile, 'r');
        while (!feof($file_handle))
                {
                $line_of_text[] = fgetcsv($file_handle, 1024);
                }

        fclose($file_handle);
        return $line_of_text;
        }

        } // das ist das schließende Tag der Funktion

?>

Du siehst hier, wie die neue Funktion die bestehende praktisch aufbricht. So etwas wird das Skript zum Absturz bringen. Die bessere Praxis ist folgende:

<?php

function  irgendeine_funktion 
        {  //das ist das öffnende Tag der Funktion

        // hier steht der Code, der die Funktion zu laufen bringt

        }// das ist das schließende Tag der Funktion

function  readCSV($csvFile)
        {
        $file_handle = fopen($csvFile, 'r');
        while (!feof($file_handle))
                {
                $line_of_text[] = fgetcsv($file_handle, 1024);
                }

        fclose($file_handle);
        return $line_of_text;
        }

?>

Einer dieser drei Fehler wird wahrscheinlich dafür verantwortlich sein, wenn Du mit Code-Schnipsel aus dem Netz hantierst und WordPress sich daraufhin verabschiedet. Wenn es dabei um Funktionalitäten eines bestimmten Plugins handelt, achte außerdem darauf, dass dieses Plugin aktiviert ist. Manche Programmierer schreiben in ihren Code nicht die bedingten Anweisungen, um das zu erkennen. Lies Dir immer genau durch, wobei es in dem Code-Schnipsel geht und folge den Anweisungen des Autors. Zusammen mit unseren Tipps wirst Du WordPress so sicher um einige Funktionen erweitern können.

Wenn Du Fragen und Anregungen hast, lass es uns wie immer in den Kommentaren wissen.

Empfohlene Beiträge

Einen Kommentar hinterlassen

Wonach suchst Du?

Share via
Wie man Code-Schnipsel richtig in WordPress einfügt
Wie man WordPress Kommentare paginiertWordPress Kontakt Popup einrichten
Send this to a friend