Für Menschen · Seien Sie begeistert und Sie werden begeistern !
WordPress bietet die Möglichkeit, Beiträge in der Zukunft zu veröffentlichen - ein praktisches Tool. Die Beiträge werden dann zum hinterlegten Zeitpunkt online gestellt ohne das der Autor nochmal veröffentlichen muss.
Warum sollte man eigentlich nicht diese Beiträge als Vorgeschmack nutzen, den Besucher der Site ein wenig anzufüttern und damit einen kleinen Einblick in die zukünftigen Veröffentlichungen geben. Vielleicht kommt er ja aufgrund der Artikelvorschau wieder, wenn der Beitrag online ist. Dazu bedarf es einer kleinen Abfrage aus der Datenbank und ein Vergleich mit dem aktuellen Datum. Die nötigen Zeilen stehen im folgenden bereit.
<?php
global $wpdb;
$fb_date_today = current_time('mysql'); //today date GMT
if ( $scheduled = $wpdb->get_results("SELECT ID, post_title, post_date_gmt FROM $wpdb->posts WHERE post_status = 'publish' AND post_date_gmt > '$fb_date_today' ORDER BY post_date ASC") ) : ?>
Vorgesehene Beiträge
<?php
foreach ($scheduled as $post) {
if ($post->post_title == '')
$post->post_title = sprintf(__('Post #%s'), $post->ID);
echo "
- " . sprintf(__('%1$s in %2$s'), "$post->post_title", human_time_diff( current_time('timestamp', 1), strtotime($post->post_date_gmt. ' GMT') )) . "
";
}
?>
<?php endif; ?>
Arbeitest Du mit einer WordPress-Version >2.1.*, so muss die SQL-Abfrage ein wenig anders aussehen - future statt puplish.
SELECT ID, post_title, post_date_gmt FROM $wpdb->posts WHERE post_status = 'future' AND post_date_gmt > '$fb_date_today' ORDER BY post_date ASC
Alternativ kann man das ganze auch über einen Query von WordPress steuern. Dieser Query ist für den Loop verantwortlich und läßt sich in vielerlei Form nutzen und anpassen.
<?php
$my_query = new WP_Query('post_status=future&order=DESC&showposts=5');
if ( $my_query->have_posts() ) {
_e('
Vorgesehene Beiträge
');
echo '
';
while ( $my_query->have_posts() ) :
$my_query->the_post();
$do_not_duplicate = $post->ID;
echo '
- ' . get_the_title() . __(' (erscheint am ') . get_the_time('d.m.Y') . __(')') . '
';
endwhile;
echo '
';
}
?>
Kommentarregeln: Bleib cool, kritisch ist in Ordnung, aber wenn du unhöflich bist, dann lösche ich deinen Kommentar. Bitte benutze deinen persönlichen Namen oder Initialen und nicht den Namen eines Unternehmens, dies würde als Spam gewertet und wird gelöscht. Der Zusammenhang zwischen Namen und URL sollte nicht offensichtlich auf Spam hindeuten! ♥ Ansonsten, vielen Dank für den Kommentar und viel Spaß mit meinem Blog.
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 886 Beiträge, 16217 Kommentare in 14 Kategorien und 448 Tags.
Das Blog wird liebevoll mit xHTML & CSS in Handarbeit gestaltet.
Design und Code ist unter Copyright
© 2001 - 2010 bueltge.de [by:ltge.de]
17. Dezember 2006 um 10:53
Sorry das ich meine Frage unter diesen Eintrag schreibe.
Meine Frage, weißt du zufällig -als offensichtlicher WordPressguru- wie man die 100 Kategorien Sperre umgeht?
17. Dezember 2006 um 12:39
Wo gibt es diese Funktion?
17. Dezember 2006 um 12:54
Vielen Dank! Genau sowas hat mir noch gefehlt!
17. Dezember 2006 um 13:38
Super Sache! Ich denke man muss den Code einfach an der Stelle einsetzen, an der man die Anzeige will. Also zum Beispiel in der Sidebar.
Geht das auch bei WP 1.5 noch?
Und noch eine Frage: Was wird angezeigt, wenn kein Artikel vorabgespeichert ist?
Und dann wünsche ich frohe Festtage, dir und allen bueltge.de-Fans!
18. Dezember 2006 um 10:17
@Burchi: nein, sorry.
@Willi: Dazu musst du den obigen Code in dein Template einbauen.
@Dominik: Ja, einfach einsetzen. Kein Artikel - keine Ausgabe, deshalb die IF-Abfrage. Geht auch unter WP 1.5.
18. Dezember 2006 um 10:21
Schade Frank,
wenn dir eine Lösung "über den Weg läuft", dann wäre es super, wenn du dich an mich erinnerst.
Vielleicht kannst du ja auch einen "Frage" Beitrag dazu schreiben, bei der Masse User, die bei dir vorbei schauen, dürfte es schnell eine Lösung geben.
Wäre Super.
18. Dezember 2006 um 10:40
@Burchi: Habe mir mal die DB angesehen, die prinzipiell viel mehr Kategorien zuläßt. Wie äußert sich das Problem, kenne es nicht. Kannst du mir beschreiben, wie es endet und ob du eine Hinweis bekommst.
Gruss Frank
18. Dezember 2006 um 10:54
Nein, man bekommt keinen Hinweis, man kann auch mehr Kategorien anlegen, diese lassen sich aber dann im Beitragsmodus nicht mehr anklicken.
Manchmal werden auch Kategorien im Beitragsmodus ausgeblendet, die schon Beiträge beinhalten.
18. Dezember 2006 um 13:55
Super! Hat geklappt. Einmal mehr vielen Dank.
Noch eine Frage: Wo steckt dieses "in" im Code? ich würde das "in 19 hours" gerne abändern zu "online in 19 hours". Zudem würde ich gerne den Titel des Textes gerne etwas farblich hervorheben, z.B. blau wie die anderen sachen in meiner Sidebar.
18. Dezember 2006 um 14:54
Hervorheben geht per CSS - echp "<li ... .
Die Texte kommen in diesem Script von der Sprachdatei, also der mo, die man über die po (
http://wordpress-deutschland.org/download/sprachdatei) anpassen kann.18. Dezember 2006 um 17:29
Sehr guter Beitrag mal wieder. Solche Tipps sind immer nuetzlich.
Alex
19. Dezember 2006 um 09:14
Ein klitzekleines problem: Wenn ein Beitrag in weniger als einer Stunde online gestellt wird, dann erscheint er nicht mehr. Das ist schade. Könnte man dann nicht entweder die Minuten, "less than one hour" oder einfach "
19. Dezember 2006 um 10:18
Habe bisher die Zeit per php time() ausgelesen, habe nun den obigen Code verändert (die ersten beiden Zeilen), so dass auch ganz genau die gleiche Zeit, wie WP im Backend hat, ausgelesen wird. Damit werden nun auch Minuten gezeigt.
LG Frank
19. Dezember 2006 um 11:11
Vielen Dank.
19. Dezember 2006 um 16:25
Danke Frank, Du sorgst mit Deinen super Hilfestellungen noch dafür, dass mir "programmieren" richtig Spass macht!
LG Frank
21. Januar 2007 um 00:06
Habe plötzlich folgende Fehlermeldung, wenn ich einen Beitrag veröffentlichen will.
Zitat:
WordPress database error: [You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AND p2c.category_id 55 AND p.post_date_gmt 55 AND p.post_date_gmt
26. März 2007 um 01:56
Hi, bei WordPress 2.1.2 funktioniert der oben genannte Code nicht. Das Problem liegt darin das dort der Post status "future" lauten muss. Nach dem man aus publish - future gemacht hat funktioniert es.
26. März 2007 um 01:57
21. April 2007 um 18:30
Eine tolle Idee...
Als WP-Anfänger wüsste ich gerne, in welche Datei der Code rein muss oder, noch besser, auch zwischen welche Segmente in der Datei.....?!?!?
23. April 2007 um 13:08
Du kannst es prinzipiell überall einbauen, wo immer es erscheinen soll. Wenn es in den Sidebar soll, dann die stidebar.php bearbeiten und den Code zwischen <li> und </li> setzen.
24. Juni 2007 um 16:34
Hoi Frank
Seit dem Update auf WP 2.1 funktioniert der Code nicht mehr richtig. So ca. in den letzten zwei Stunden wird nichts mehr angezeigt (Habe keine Änderungen vorgenommen).
24. Juni 2007 um 19:49
@Dominik: Die SQL-Anweisung angepasst?, die muss seit 2.1 ein wenig anders aussehen, siehe Update im Artikel. Dann sollte es klappen.
24. Juni 2007 um 20:51
Ja: get_results("SELECT ID, post_title, post_date_gmt FROM $wpdb->posts WHERE post_status = 'future' AND post_date_gmt > '$fb_date_today' ORDER BY post_date ASC") ) : ?>
25. Juni 2007 um 09:06
Hy Dominik, sieht korrekt aus. gebe doch mal per echo $fb_date_today den Zeitstempel aus, ob der richtig ist und dann kann man vergleichen.
25. Juni 2007 um 15:54
Das verstehe ich nicht. was muss ich tun?
26. Juni 2007 um 13:47
Die Variable $fb_date_today ausgeben, dazu:
$fb_date_today = current_time('mysql'); //today date GMT echo $fb_date_today;4. Juli 2007 um 12:35
Ist der [2te] Code auch für die DE-Version 2.2.1 gültig und, vor allem,
In WELCHER DATEI muss die Anpassung gemacht werden?
(Bin noch neu im Umgang mit WP, sorry)
4. Juli 2007 um 13:12
ja. je nach dem, wo es hin soll. Sidebar --> sidebar.php.
28. April 2008 um 23:12
28. April 2008 um 23:13
Hi,
auch bei WordPress 2.5 muss man was ändern, diesmal muss "future" mit "pending" ersetz werden.
21. November 2009 um 01:12
kann man die leser auch per rss "anfüttern"??
21. November 2009 um 09:59
@yoyo: ja, natürlich kann man auch einen Feed für die Entwürfe oder auch die Beiträge, die in Zukunft erscheinen, in WordPres integrieren. Ich habe dafür fast eine Lösung, die du nur mit der Abfrage hier abgleichen musst.