PHP Include in WordPress: Datei oder Text einbinden!
Mit PHP eigene Dateien oder Programm-Code in einem WordPress-Beitrag einbauen: So geht’s! Mit dem Content-Management-System WordPress lassen sich schicke Webseiten gestalten, die später von anderen Nutzern mit weniger oder auch gänzlich ohne Programmierkenntnisse gepflegt werden können.
Sollen komplexere Elemente aber in einem WordPress Beitrag oder auf einer Seite eingebaut werden, kann das andere Nutzer schnell verwirren und zu unübersichtlichem Code führen – hier hilft es, den zusätzlichen Programm- oder auch HTML-Code in eine Datei auszulagern, die später beim Aufrufen der Seite automatisch eingefügt wird.
Dies funktioniert zum Beispiel mit dem Plugin Insert PHP: Damit lassen sich in einem Beitrag oder auf einer Seite PHP-Kommandos (wie “echo” oder “include”) angeben, die später ausgeführt werden. Dies kann aber ein Sicherheits-Risiko darstellen, da jeder mit Zugang zu dem WordPress Backend auch einen PHP Code ausführen kann.
Kein Plugin: Selber Datein einbinden
Eine weitere Möglichkeit, ganz ohne Plugin, ist eine kleine Änderung der “functions.php” Datei im Ordner des aktuellen Themes: Hier kann man dann selber festlegen, dass nur Dateien aus einem bestimmten Ordner geladen werden dürfen – und wenn man dort keine PHP Programm-Codes braucht sondern nur HTML Design-Elemente auslageren möchte, kann man sogar nur HTML Dateien zulassen: Dadurch haben Angreifer es nicht mehr so leicht, aus dem WordPress Backend eigenen Code einzuschleusen.
In die Datei functions.php ergänzt man folgenden PHP Code (wie das dann aussieht, zeigen wir weiter unten!):
// Include PHP Datei function include_php($atts = [], $content = null, $tag = '') { extract(shortcode_atts(array('datei' => ''), $atts)); if(!empty($datei) && !strstr('/',$datei) && file_exists(TEMPLATEPATH.'/includes/'.$datei)) { ob_start(); include(TEMPLATEPATH.'/includes/'.$datei); $return = ob_get_clean(); return $return; } } add_shortcode('php', 'include_php');
Anschließend erstellt man in dem Theme-Ordner einen neuen Ordner mit dem Namen “includes”: Hier speichert man jetzt die neuen PHP Dateien, die man aus einem WordPress Beitrag einbinden möchte.
Das Einbinden aus einem Beitrag oder aus einer Seite heraus geht dann mit diesem Code:
[php datei='team.php']
Das Skript kann aus Sicherheitsgründen aber nur Dateien aus dem angegebenen Ordner “icludes” öffnen, Unterordner oder übergeordnete Ordner werden nicht per include eingebunden – dafür sorgt dieser Teil der IF-Abfrage:
!strstr('/',$datei)
Damit werden Ordner ausfiltert: Aus dem Beitrag heraus lässt sich also auch mit dem neuen Shortcode die Datei “../../…/var/www/server.conf” nicht öffnen, da das Trennzeichen für Ordner, der Schrägstrich “/” in dem übergebenen Dateinamen nicht vorkommen darf.
Sicherer machen: Nur HTML laden
Möchte man das Skript noch sicherer machen und nicht nur auf einen einzigen Ordner, sondern auch auf nicht ausführbare Dateien (zum Beispiel .html) beschränken, hilft diese kleine Abwandlung: Damit braucht in dem WordPress-Beitrag keine Datei-Endung mehr angegeben zu werden, da automatisch “.html” an die übermittelte Variable angehängt wird.
Der Code für die Datei functions.php sieht dann so aus:
// HTML Datei lesen function include_php($atts = [], $content = null, $tag = '') { extract(shortcode_atts(array('datei' => ''), $atts)); if(!empty($datei) && !strstr('/',$datei) && file_exists(TEMPLATEPATH.'/includes/'.$datei.'.html')) { ob_start(); readfile(TEMPLATEPATH.'/includes/'.$datei.'.html'); $return = ob_get_clean(); return $return; } } add_shortcode('php', 'include_php');
Eingebunden wird die Datei dann aus dem Beitrag heraus mit diesem Code:
[php datei='team']
- datenschutz (54x gelesen)
- windows-defragmentieren-und-aufraeumen (43x gelesen)
- windows-beschleunigen (39x gelesen)
- windows-schneller-starten-autostart-aufraeumen (37x gelesen)
- pc-einsteigerkurs (33x gelesen)
Mehr Tipps zu PHP Include in WordPress: Datei oder...
-
So findet man den Thunderbird Profil-Ordner!
Im Profil-Ordner des Open Source Mail-Programms Thunderbird werden das Adressbuch, alle angelegten Ordner und vor allem alle Emails gesichert. Wer diese Daten auf einen neuen...
-
Windows: Doppelte Dateien in einem Ordner löschen!
Wenn sich in einem Ordner doppelte Dateien befinden, sind das meist Kopien der ursprünglichen Dateien: Das kommt zum Beispiel daher, wenn man die Bilder der...
-
Mac-Ordner “Library” im Benutzer-Ordner anzeigen
Den Library-Ordner gibt es unter MacOS gleich mehrfach: Einmal direkt auf der obersten im Finder sichtbaren Ebene der Fesetplatte unter "Macintosh HD" und einmal im...
-
M4A Audio-Datei in MP3 umwandeln auf dem Mac!
Eine M4A-Datei lässt sich auf einem Mac ganz einfach in eine MP3-Datei umwandeln, beispielsweise mit der Apple Music-App. Dies ist besonders nützlich, wenn man etwa...
-
Apple Mac: ZIP Datei mit Passwort schützen (ohne Zusatz-Tools)!
Durch das Zippen oder Komprimieren von Dateien spart man leicht Speicherplatz und kann mehrere Dateien als einzenes, praktisches Archiv weitergeben: Das Erstellen einer ZIP Datei...
-
PHP Fehler anzeigen: Fehleranzeige aktivieren für eine oder alle Seiten!
Schnell sehen, wo der PHP Fehler liegt: Dazu schaltet man die PHP Fehleranzeige ein, um genaue Informationen zu Problem und Zeilennummer zu bekommen. Die PHP...
PHP Include in WordPress: Datei oder Text einbinden!