Wenn man PHP-Code bzw. bestehende oder neue PHP-Dateien in WordPress einbinden möchte, macht man das am besten im aktuellen Theme von WordPress. Man legt ein sogenanntes Seiten-Template an, welches man bei der Bearbeitung der Seite in WordPress wählen kann. In diesem Template befindet sich dann das gewünschte PHP-Script.
Lege eine neue Datei im Theme-Ordner unter wp-content/theme/
<?php /* Template Name: DeinTemplate-Name */ ?> <?php get_header(); ?>
<?php if (have_posts()) : ?> <?php while (have_posts()) : the_post(); ?>
<div class="post page"> <h2><?php the_title(); ?></h2> <?php the_content(); ?> </div>
<?php endwhile; ?> <?php endif; ?>
<?php echo "Hier kommt mein tolles PHP-Script bzw. der PHP-Code rein!"; ?>
<?php get_footer(); ?>
Wichtig hierbei ist der Kommentar, der unbedingt enhalten sein muss. WordPress erkennt anhand des Strings "Template Name", das es sich um ein Template handelt. Die Funktion get_header bindet das Header Template ein (wie gewohnt) und die Funktion get_footer das Footer-Template. Nach dem Header wird mit den Post-Funktionen der Inhalt der Seite, also die Headline und der Text, ausgelesen.
Anstelle des echo-Befehles (Hier kommt mein…) kann jetzt gewünschter PHP-Code eingefügt werden.
Jetzt kannst du im WordPress-Admin in der Seiten-Verwaltung unter "Seiten" ganz normal eine Seite anlegen und auf der rechten Seite neben dem Formular das erstellte Seiten-Template mit dem Namen aus dem Kommentar auswählen. Seite veröffentlichen und schon wird der Code (der hoffentlich fehlerfrei ist) auf der erstellten Seite ausgeführt.
Das Verfahren kann man natürlich beliebig weiterführen und komplexere Anwendungen in das Template einbinden. Das kurze Tutorial hier soll lediglich als Einstieg in dieses Thema dienen.
Mehr Info bei WordPress: Theme-Page-Templates
2. VERBESSERUNGS-Vorschlag:
Als relativ neuer WordPress Benutzer hatte ich 'wp-content/theme//' für einen Tippfehler gehalten, es gab in meinem Baum 'wp-content/themes/'
Nach längeren Suchen, weshalb es bei mir nicht funktionierte, wurde mir schließlich die Lösung klar:
'wp-content/theme//' meint 'wp-content/NAME_DES_VERWENDETEN_THEMES/'
Deshalb wäre für mich deutlicher anstelle von
"Lege eine neue Datei im Theme-Ordner unter wp-content/theme//deintemplate.php mit folgendem Inhalt an:"
die Zeile gewesen:
"Lege eine neue Datei im Theme-Ordner unter wp-content//deintemplate.php mit folgendem Inhalt an:"
'wp-content/themes/NAME_DES_VERWENDETEN_THEMES/'
lauten.
Gruß von Armin
das klappt super. Ich habe es im Root Verzeichnis des Templates gespeichert.
Leider passiert es, dass wenn das Template aktualisiert wird, die von mir erstellten Dateien gelöscht werden. Hast du eine Idee wie man das umgehen kann?
Benutze das Vantage Template.
Speicher dir das template einfach ab irgendwo
Danke für deine Antwort. Ich habe den Anfänger Fehler gemacht und habe es direkt im Template ausgeführt.
Beim Template Update wurde es dann gelöscht.
Ich habe dann ein "Child" Template angelegt womit es dann geklappt hat.
klasse Tipp, hat mir sehr geholfen!
Vg Marcus
vielen Dank, das freut mich.
Viele Grüße
Nico
Leider komme ich aber mit getheader() / getfooter() nicht zum Ziel.
Das scheint wohl mit dem Headway-Theme zusammen zu hängen, oder?
Hat jemand eine Idee?
Funktioniert soweit.
Nur was muss ich beachten, wenn ich das Headway-Theme benutze?
Denn da scheint get_header() und get_footer() so ohne Weiteres nicht zu greifen.
Vielen Dank und Gruß,
Axel
http://plugins.trac.wordpress.org/wiki/RunPHP
LG Marina
man kann in einer bestimmten datei, an der richtigen stelle was rein bringen.
is aber nicht ganz so einfahc erklärt.
Du hast mit deinem Artikel genau DAS auf den Punkt gebracht, was ich gesucht habe und hast mir damit sehr geholfen!
Danke dafür noch mal!!!
z.b. eine seite ist schon vorhanden, soll aber durch ein inlcude("meine_fotoshow"); ergänzt werden !!!
Was denkst du?