Für Menschen · Seien Sie begeistert und Sie werden begeistern !
WordPress vergibt für jeden Beitrag, Seite und Kommentar eine eindeutige ID in der Datenbank. Diese macht es einfach und schnell möglich, einen expliziten Inhalt aus der Datenbank zu laden.
Wozu? - Dafür gibt es eine ganze Reihe Anwendungsmöglichkeiten.
In einem konkreten Projekt wird Inhalt in den Header und Footer geladen, Text, der den Leser des Blog informiert.
Ein konkretes Beispiel ist das Blog von Shirtinator, dort wird im Header- und Footer-Bereich Inhalt aus dem Backend, aus statischen Seiten, gezogen.

In der Regel werden solche Texte direkt im Markup des Theme hinterlassen, was die Pflege für den Laien erschwert. Aber auch für solche Zwecke nutzt man ja ein CMS, warum also nicht einen Artikel aus der Datenbank dazu nutzen. Insbesondere eignet sich dazu eine statische Seite, die ist schnell wieder auffindbar und nicht im täglichen Artikelzoom eines Weblogs.
Hat man spezielle Anforderungen und kann mit dem Loop arbeiten, dann empfiehlt sich die erste Lösung im folgenden Code. Eine genaue Doku zu query_posts findet sich im Codex, denn dieser Template Tag kann wesentlich mehr und macht die Anwendung für besondere CMS-Gestaltung möglich.
<?php
$post_id = 3;
query_posts('p=' . $post_id); // post-ID
while (have_posts()) : the_post(); // starte the_loop
_e('<h3>') . the_title() . _e('</h3>') . "\n";
the_content();
endwhile;
?>
Der zweite Codeschnipsel greift direkt in die Datenbank ein und holt den Beitrag, ohne Formatierung durch die WordPress-Filter und kann so beliebig via Template ausgegeben werden. Dabei spielt es keine Rolle, ob es sich um einen Beitrag oder eine statische Seite handelt, denn WordPress vergibt die ID ohne Unterscheidung. Für den Unterschied Seite/ Beitrag steht ein weiteres Tabellenfeld bereit, was aber in dem Fall nicht nötig ist und so genügen die beiden Felder post_title, post_content für Titel und Inhalt.
<?php
$results = $wpdb->get_results("
SELECT post_title, post_content
FROM $wpdb->posts
WHERE ID = '9'
");
foreach ($results as $pagepost) {
echo '<h3>' . $pagepost->post_title . '</h3>' . "\n";
echo '<p>' . $pagepost->post_content . '</p>';
}
?>
Im Grunde muss man nur die Adresse ändern. Während man mit p= einen Beitrag anspricht, bekommt man mit ?page_id= eine statische Seite.
<?php
query_posts('?page_id=3'); // post-ID
while (have_posts()) : the_post(); // starte the_loop
_e('<h3>') . the_title() . _e('</h3>') . "\n";
the_content();
endwhile;
?>
Parameter des Tag ist cat=-. Will man mehrere Kategorien ausschließen, dann werden die IDs der jeweiligen Kategorie getrennt cat=-1,-3,-9.
<?php
query_posts('cat=-123); // category-ID
while (have_posts()) : the_post(); // starte the_loop
_e('<h3>') . the_title() . _e('</h3>') . "\n";
the_content();
endwhile;
?>
Auch hier kann man explizit Kategorien nutzen, einfach die entsprechenden IDs mit Kommata trennen cat=1,3,9. Entscheidend, ohne Minus - vor der Kategorie-ID.
<?php
query_posts('cat=123); // category-ID
while (have_posts()) : the_post(); // starte the_loop
_e('<h3>') . the_title() . _e('</h3>') . "\n";
the_content();
endwhile;
?>
more-Funktionalität erhaltenSoll die more-Funktionalität (<--more-->) von WordPress erhalten bleiben, dann muss die Variable dafür gesetzt werden.
<?php
query_posts('cat=123); // category-ID
global $more;
$more = 0;
while (have_posts()) : the_post(); // starte the_loop
_e('<h3>') . the_title() . _e('</h3>') . "\n";
the_content();
endwhile;
?>
händischer Spam:
Beachte die Kommentarregeln, jede Form von versuchtem Spam wird gelöscht. Warum und wieso steht in einem meiner Beiträge.
Bezug auf Textstellen:
Du kannst direkt bezug auf Textstellen im Beitrag nehmen. Dazu muss lediglich der Bereich im Artikel markiert werden; daraufhin erscheint ein Button, der den markierten Text in das Kommentarfeld übernimmt und als Zitat auszeichnet. Die Funktion ist nur bei aktivem JavaScript nutzbar.
xHTML:
Du kannst folgende Tags benutzen: <a href="" title=""> <abbr title=""> <acronym title=""> <blockquote cite=""> <code> <pre> <em> <strong> <strike> <ul> <ul> <li>
Achte darauf, wenn du Code im Kommentar hinterlegen willst, dann muss der Code maskiert sein. Dann wird er nicht interpretiert. Der Code muss mit Hilfe von HTML-Entities dargestellt werden, d.h. dass man z.B. < als < und > als > einfügt.
E-Mail-Benachrichtigung bei neuen Kommentaren ?
Wenn der Haken in der Checkbox gesetzt ist, dann wirst du über neue Kommentare vie E-Mail informiert. Der Versand erfolgt nur, wenn du die URL in der Bestätigungs-E-Mail genutzt hast oder schon Abonnent hier im Blog bist.
Kommentar erscheint nicht:
Alle Kommentare werden manuell geprüft, freigegeben und nach Möglichkeit beantwortet. Bitte um etwas Geduld und Nachsicht.
Identifikationsbilder (Avatare):
Auf Gravatar.com kann man sich mit seiner E-Mail-Adresse registrieren und ein Bild hochladen, dann erscheint dieses Gravatar hier und in vielen weiteren Blogs.
Spamschutz:
Das Kommentarformular ist mit einem Spamschutz ausgerüstet. Solltest du diesen Artikel ohne JavaScript besuchen und kommentieren wollen, so muss du die Frage beantworten und das jeweilige Wort in das Textfeld eingeben.
bueltge.de [by:ltge.de] wird von Frank Bültge geführt, administriert und gestaltet. Alle Inhalte sind persönlich von mir ausgewählt und erstellt, nach bestem Gewissen und Können, was die Möglichkeit von Fehlern nicht ausschließt.
Das Weblog wird angetrieben von WordPress und aktuell gibt es 971 Beiträge, 19439 Kommentare in 14 Kategorien und 459 Tags.
Das Blog wird liebevoll mit xHTML & CSS in Handarbeit gestaltet. Erstellt mit ♥ zum Befüllen und Erhalten.
Design und Code ist unter Copyright
© 2001 - 2012 bueltge.de [by:ltge.de]
7. Januar 2008 um 20:16
Jap sauber. Hab so meine Firmenseite mit WordPress realisiert. Ist schon cool was man damit alles anstellen kann und trotzdem via Backend auf einfache Art und Weise weiterpflegen kann
7. Januar 2008 um 21:15
manuel merz, klase gemachte firmen seite
für meinen geschmack die referenzen etwas zu schnell im wechseln macht die seite unruhig
9. Januar 2008 um 09:59
14. Januar 2008 um 10:58
Habe bei meinem Relaunch auf ein Theme im Magazin Style auch viel mit query_posts gearbeitet, vor allem die Anzeige der Beiträge einer oder mehrere Kategorien ist damit einfach zu lösen.
Hätte dabei gleich eine Frage zu einem Datenbank-Feld in "wp_posts", und zwar zum Feld "guid". Dort wird scheinbar direkt beim Erstellen eines Beitrags die aktuelle URL eingetragen und zwar mit der zu diesem Zeitpunkt eingetragen Blog-URL und den Permalink-Einstellungen. Wenn man nun Veränderungen an der Permalink-Struktur vornimmt, dann stimmt zwar die Anzeige im Blog, aber das Feld "guid" hat weiterhin die alten Inhalte.
Aufgefallen ist mir das Feld, nachdem ich das Plugin "crawlink" ausprobiert habe. Dieses greift auf eben dieses Feld "guid" zu. Weiß jemand wo dieses Feld noch Verwendung findet bzw. für was dieses Feld da ist?
14. Januar 2008 um 20:57
Großartig, genau danach habe ich gesucht. Vielen Dank.
30. April 2008 um 14:06
hallo, ich bin auf der suche nach einen code, welcher es ermöglicht auf einer statischen WP-seite, den inhalt einer fertig auf meinem server liegenden *.html datei zu laden.
gibts dafür eine ähnliche möglichkeit?
das ist desshalb nötig, weil diese *.html datei tgl mit einem desktop-programm neu generiert wird und nach dem upload in eine stat. seite geladen werden soll.
vielleicht fällt ihnen ja was ein, was mir hilft.
herzlichen dank
hans
30. April 2008 um 14:29
@Hans: prinzipiell kannst du jeden Inhalt mit PHP laden, allerdings wird das nicht sauber sein.
30. April 2008 um 14:42
Hallo Frank,
Vielen dank für deine schnelle Antwort, ich habs ausprobiert und wie du schon gesagt hast es entstehen Fehler. Was hat es mit iFrame auf sich, wie ist die Herangehensweise?
Kannst du auch da helfen?
30. April 2008 um 14:55
@Hans: siehe Doku, da findest du alles relevanten Infos
30. April 2008 um 15:20
hallo nochmal.
1000 Dank Frank
Das klappt gut. Einziges pRoblem welches ich noch habe ist, das obwohl charset UTF-8 eingestellt ist, sowohl in der *.html datei als auch im verlinkten iFrame code.
Hast du noch ne Idee?
Hans
30. April 2008 um 15:22
@Hans: immer schwierig ohne Links, erraten kann ich nur, dass die html ein anderen Zeichensatz nutzt.
29. Juli 2008 um 10:15
Als Nicht-PHPlerin war ich neugierig auf diese tolle Funktion und habe sie (Inhalt einer best. Seite) per Codeschnipsel in der header.php nach dem header-div platziert sowie h3 und p mit styles zum Platzieren, Formatieren ergänzt. Meine Frage: Ist das OK so im Sinne von "sauberer Code"? Zusaätzlich habe ich in der eigentlichen Seite div-Tags benutzt, um Grafik und Text entsprechend anzuordnen.
29. Juli 2008 um 10:45
@Ramona: der PHP-Code kann prinzipiell überall stehen, enthält er jedoch HTML, wie bei dir, dann muss er im body der Seite sein, was du ja somit korrekt erstellt hast. Zusätzlich ist das Validieren sinnvoll.
6. Februar 2011 um 11:14
Beim Laden einer statischen Seite hat "?page_id=3" bei mir nicht funktioniert. Ohne Fragezeichen funktioniert es allerdings.
Dennoch danke für die Hilfe!