WordPress in eine normale Seite einbinden

Hinweis: es gibt eine neue, überarbeitete Version dieses Tutorials!!

Im Wunschbuch kam die Frage auf, wie man lediglich die Blog-Funktion von WordPress nutzen kann, ohne gleich seine gesamten statischen Seiten über WordPress laufen lassen zu müssen.
Dies stellt im Grunde kein Problem dar.

Du benötigst eine “herkömmliche” Webseite, die ganz normal in HTML geschrieben ist. Damit WordPress läuft, benötigst du auf deinem Server allerdings PHP.
In dem Verzeichnis, in dem sich die Dateien dieser Seite befinden, installierst du dir WordPress. Wie das genau geht, kannst du in diesem Tutorial nachlesen.

Da das WordPress-Blog in die bereits bestehende Seite eingebunden werden soll, werden eine ganze Menge Dinge aus den WP-Theme-Dateien nicht benötigt – zum Beispiel die Sidebar, denn die Navigation besteht ja bereits in der normalen Webseite. Im Grunde brauchst du lediglich das Posting selber mitsamt den Angaben zu Datum und Kommentaren. Dieses Code-Abschnitt bezeichnet man als den WordPress-Loop:

<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<div class="post" id="post-<?php the_ID(); ?>">
<h1><a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a></h1>
<div class="meta"><?php _e("einsortiert unter:"); ?> <?php the_category(',') ?>
<?php the_tags(__('Tags: '), ', ', ' — '); ?>
<?php the_time() ?>
<?php edit_post_link(__('edit')); ?>
</div>

<div class="storycontent">
<?php the_content(__('(weiterlesen...)')); ?>
</div>

<div class="feedback">
<?php wp_link_pages(); ?>
<?php comments_popup_link(__('0 Kommentare'), __('1 Kommentar'), __('% Kommentare')); ?>
</div>

</div>

<?php comments_template(); ?>

<?php endwhile; else: ?>
<p><?php _e('Sorry, nichts gefunden.'); ?></p>
<?php endif; ?>

Der bildet nun also das Herzstück der Seite, in die WordPress eingebunden werden soll.
Ganz zu Beginn dieser Seite – also noch vor dem öffnenden HTML-Tag und der Angabe des Doctypes – includest du nun zuerst einmal die Datei wp-blog-header.php, die im Rootverzeichnis deiner WordPress-Installation liegt und in der die verschiedenen Funktionen definiert werden.

<?php include ('wp-blog-header.php'); ?>
Doctype
<html>
<head>
...
</head>
<body>
DER LOOP (siehe oben)
</body>
</html>

Diese Datei speicherst du als index.php in deinem Theme-Verzeichnis – also etwa:

http://www.meinedomain.de/wordpress/wp-content/themes/default_de/index.php

(vielen Dank an Aristagon und Spip für den Hinweis, das hier nochmal explizit zu erwähnen)

Fertig! :-)

verwandte Beiträge

63 Gedanken zu “WordPress in eine normale Seite einbinden

  1. @Sascha,
    ich bin auch sehr stark interessiert an den “noch nötigen Änderungen in der single.php und der comments.php”!
    Gibt’s da schon irgendwas? ;o)

  2. Hallo,

    erstmal find ich Klasse das es dafür ne ANleitung gibt!
    Habe es auch schon mal probiert und da funktionierte es.

    nur i rgendwie bekomme ich es jetzt nicht mehr hin=(
    Habe einen ordner “wedding”, dort liegen die anderen seiten der HP drin, ohne WP.
    Dann haben ich neben dem Ordner “Wedding” einen ordner “wordpress”. Dort ist wordpress drinn. die index.php hab ich so bearbeitet wie beschrieben und in den theme unterodner default gepackt. den wp-blog-header habe ich so includet:

    Jedoch kommen diese Fehler:
    Warning: include(wordpress/wp-blog-header.php) [function.include]: failed to open stream: No such file or directory in /home/webpages/lima-city/updatetraining/html/wordpress/wp-content/themes/default/index.php on line 1

    Warning: include() [function.include]: Failed opening ‘wordpress/wp-blog-header.php’ for inclusion (include_path=’.:/usr/lib/php/’) in /home/webpages/lima-city/updatetraining/html/wordpress/wp-content/themes/default/index.php on line 1

    und in dem bereich wo eigtl der blog stehen sollte auch noch:
    Fatal error: Call to undefined function have_posts() in /home/webpages/lima-city/updatetraining/html/wordpress/wp-content/themes/default/index.php on line 63

    Kann mir jemand weiterhelfen?
    vielen dank schonmal!

  3. mh das includet is weg, also ich habe den pfad wordpress/wp-blog-header.php angegeben, sollte ja stimmen oder?

  4. hallo, zunächst möchte ich danke sagen für die anleitung. ich hab nun folgende fehlermeldung:

    Fatal error: Call to undefined function have_posts() in /var/www/web201/html/XXX/wordpress/wp-content/themes/default_de/index.php on line 48

    hat jemand ne ahnung, was ich falsch gemacht hab?

  5. Mit anderen Worte ich könnte eine statische Seite bauen und in dieser z.B einen oder zwei Feeds drinne auslesen lassen die dann zum eigenen Kontent der seite werden??

  6. wow. bin zufällig auf diesen post gestossen, aber dieser verwendungszweck war mir gar nicht so bewußt. danke für den anregendenden impuls.

  7. wow. bin zufällig auf diesen post gestossen, aber dieser verwendungszweck war mir gar nicht so bewußt. danke für den anregendenden impuls.

    (den vorangegenenen kommentar einfach löschen. danke)

  8. Super Tut!

    Habs ganz gut hinbekommen, außer, dass die von mir im Admin-Bereich eingestellte Anzahl der auf der index.php erscheinenden Artikel zwar eingehalten wird, es aber keinen Button oder ähnliches gibt, der zu den älteren Artikeln führt…

    Zudem fehlt sowohl auf der Startseite als auch auf den einzelnen Artikelseiten das Datum (Tag/Monat/Jahr). Die Uhrzeit dagegen ist da (die bei einem Artikel eher weniger interessiert…).

    Vielleicht kann mir da noch jemand mit guten Tipps zur Seite stehen.

    Gruß Sash

  9. Hallo,

    vielen Dank für deine Anleitung, hat soweit auch super geklappt…
    Allerdings habe ich jetzt ein Problem:

    Meine bestehende Seite benutzt charset iso- 8859-1, wenn ich jetzt die php aufrufe sind ä,ß,ö usw mit platzhalterzeichen dargestellt. das ist ebenfalls der fall wenn ich in der php utf-8 festlege…

    der effekt verschwindet, wenn ich in wordpress unter settings iso-8859-1 wähle, dann werden aber in den posts sonderzeichen garnicht mehr dargestellt.

    stell ich mich nur dumm an, oder hat jemand anderes dieses oder ein ähnliches problem auch

  10. Hallo, ich habe zum Thema noch eine Frage:

    Ich zeige die TOP Last Posts from unser WordPress Blog in die Unternehmen front index page.
    Das problem ist:

    die ganze Seite ist mit ISO-8859-1 gemacht, und nur die Stückchen WordPress ist UTF8. Da zeigt die ganze Umlaut verwirt! Ich habe “millionen” pages über den Thema durchgesucht, nichts gefunden, nur dieses utf8_decode, kriege ich aber auch nichts hin. Hat jemand eine idee was ich weiter machen kann??
    Danke
    Andrea

    PS: sorry für mein Deutsch!!!

  11. Hey, vielen Dank fürs Tutorial! Sowas habe ich schon lange gesucht…

    Wenn ich die Datei index.php nenne, und zu WP schiebe, funktioniert aber mein Stylesheet nicht mehr… (extern, eingebunden)

    Wieso? :-/

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht.

Du kannst folgende HTML-Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Abonnieren, ohne einen Kommentar zu hinterlassen