WordPress Content zeitversetzt darstellen

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.

Kommentare

  
  1. Kann man sehr gut einsetzen!

  2. Jens sagt:

    Hi Frank! Das ist praktisch! Damit kann man ja auch einen Memberbereich interessanter machen und trotzdem seine Posts irgendwann öffentlich machen. Die Passwortsperre von WP finde ich persönlich nämlich etwas altertümlich...
    Danke für den schönen Beitrag!

  3. Ralf sagt:


    define( MINUTE, 60 );
    define( HOUR, 60*60 );
    define( DAY, 24*60*60 );
    define( WEEK, MONTH, YEAR, HALF_DAY, usw

    Man macht sich die Arbeit leichter wenn man Zeiteinheiten gleich mal in verständlicher Sprache definiert. Dadurch wird der Code auch etwas besser lesbar da man besser versteht was mit "3600" gemeint ist.

  4. Sandro sagt:

    Wirklich sehr nützlicher Artikel. Genau sowas habe ich für mein aktuelles Projekt gesucht.

    DANKE :)

    Gruß
    Sandro

  5. Jürgen sagt:

    Schon wieder Code Arbeit, mag ich net so..:)
    Dann schon lieber hier einfach mit Lesen....was es alles so gibt für WordPress das hört ja nimmer auf....

    Schöner Blog, komme gerne wieder vorbei...

  6. Hannes sagt:

    Boar diese Artikel mit Quellcode sind echt immer schwer zu lesen... aber du hast alles gut erklärt, es ist alles nachvollziehbar. Danke dafür, ich komme auch wieder!

  7. René sagt:

    Respekt! Da hat sich jemand Gedanken gemacht und diese TOP umgesetzt. Vielen Dank für diese Veröffentlichung. MfG

  8. Morigan sagt:

    ui das hat was.... ich hab manchmal nachts anfälle von "schreibwut" und baller zig artickel raus und dann wieder ein paar wochen keine Lust. Da kommt das ja wie gerufen... So kann ich dann meinen Blog lebendiger gestallten und meine Leser denken nicht immer das ich i-wie schräg drauf bin

  9. Mark sagt:

    Das ist wirklich ein sehr schöner Artikel, das habe ich für mein Aktuelles Projekt gesucht.

    Tausend dank dein Blog ist echt eine wahre Goldgrube..
    Mach weiter so!!!

    LG
    Mark

  10. Rafael sagt:

    Sehr interessant! Worin unterscheidet sich jetzt dein Code-Snippet von der Standard WP-Funktion der zeitversetzten Veröffentlichung?

  11. Ich glaube nicht, dass das Sinn macht. Im Internet existiert keine Zeit.

  12. Morigan sagt:

    aufjedenfall den Blog kann man wirklich weiter empfehlen... ein paar bekannte von mir haben sich auch schon sehr über den tip mit diesem blog gefreut

  13. Kau-Boy sagt:

    Ne wirklich witzige Idee. Aber noch eine weiter Optimierung zur Abfrage. Ralf hatte ja vorgeschlagen Konstanten zu definieren. Noch eleganter geht es direkt mit SQL. Es gibt nämlich ein Sprachkonstrukt INTERVAL das hier super passt und die Sache noch leserlicher macht. Hier ein Beispiel:


    $where .= " AND post_date < NOW() - INTERVAL 5 MINUTE";

    Wichtig ist hierbei, dass das Interval-Schlüsselwort immer im englischen Singular angegeben wird. Also z.B. "10 DAY" und nicht "10 DAYS". Das macht es natürlich auch einfacher dafür Variablen im Statement zu benutzen.

    Außerdem hast du noch einen Fehler in deinem Code. Du musst natürlich von der aktuellen Uhrzeit die Minuten abziehen und nicht aufaddieren.

    Eine weiter Vairante funktioniert mit strtotime() und sieht wie folgt aus:


    $where .= " AND post_date < FROM_UNIXTIME(" . strtotime("-5 day"). ")";

    Beide Varianten machen das Ganze viel leserlicher, wobei ich ein großer Fan von INTERVAL in SQL-Statements geworden bin.

  14. kamagra sagt:

    Wie immer ein Vergnügen zu lesen! Ich werde auf dich zu neuen Artikeln warten! Vielen Dank! fügen Sie Ihren Blog zu Ihren Lesezeichen

  15. Kau-Boy sagt:

    @Fischefänger: "Im Internet existiert keine Zeit." Das ist gut, muss ich mir merken. Aber leider ist dem nicht so. Ein gutes Beispiel dafür sind die Angebote der öffentlich rechtlichen Sendeanstalten, die ja leider Dinge nach 1-2 Jahren (manchmal schon nahc einer Woche) "depublizieren" müssen. Aber die beschriebene Funktion macht durchaus Sinn, wenn auch nicht für jeden Blog.

  16. Ralf sagt:

    @Kau-Boy:
    So lange man seinen eigenen SQL-Server hat, ist dein Tipp nicht schlecht. Ich würde bei WordPress aber möglichst wenig in das SQL-Statement packen. WP läuft häufig auf Shared Hosts und da weiß man nicht ob man mit solchen SQL-Konstrukten nicht das Kind mit den Bade ausschüttet.
    Deswegen bin ich ein großer Fan davon alles im PHP-Script klar und deutlich zu definieren und klare Anweisungen (an den SQL-Server) zu übergeben.

    Das sind aber zwei Philosophien die jeder nach seinem Gusto vertreten kann ;)

    @Fischefänger:
    Mag sein das es im Internet keine Zeit gibt. Aber das ist auch uninteressant. Denn maßgeblich sind die Nutzer des Internets und bei denen ist Zeit sehr wohl existent.

  17. Rein von der Semantik her würde ich sagen, fehlt noch der Hinweis, dass diese Funktion wahrscheinlich dann in die functions.php muss? Und wenn man den Code anwenden will auf die Einträge? Muss man dann eine IF-Abfrage mit der Funktion um den Loop machen?

    • @Alexander: Ich bin in der Regel eher für ein Plugin, als Theme - da dies für die Gestaltung da ist, nicht für Funktionen, die unabhängig vom Layout laufen. Prinzipiell geht die functions.php des Themes, aber beim Themewechsel, Problemen etc. ist die Funktion weg. Die if-Abfrage ist nicht notwendig, der Hook von WP greift auf den Loop und damit greift das Stück Source überall, wenn man es nicht in der Funktion ausschließt, wie bspw. das Backend mit is_admin().

  18. Ralf sagt:

    @Alexander:
    In die functions.php würde ich so gut wie gar nichts mehr rein packen. Es schreibt sich zwar so leicht (pack den Code einfach in die functions.php), hat aber so seine Tücken.
    Auf meiner lokalen Installation hatte ich ein paar Codeschnipsel in der functions.php. War ja alles nur zum testen und muss ja immer schnell gehen, nehme ich halt das Standard-Theme. Dann kam das Update zu 3.1. Ist ja alles nur lokal, was soll schon schief gehen. Backup? Ach, Zeitverschwendung!
    Na ja, nach dem Backup habe ich dann wie doof nach meinen Codeschnipseln gesucht, die wurden nämlich mit dem Backup ohne Vorwarnung überschrieben.

    Jetzt habe ich ein kleines Plugin das mir quasi meine eigene functions.php beim Start inkludiert:
    add_action ( 'init', 'my_hacks_include' );
    function my_hacks_include() {
    include_once $path . '/my_hacks.php';
    }

    $path ist der Pfad zu der entsprechenden Datei. Da kann man sich ja was nach seinem Gusto aussuchen. Entweder im Theme-Ordner, im Plugins-Ordner oder direkt in wp_content.
    Wenn man die Hooks nutzt, ist man zudem noch flexibler wann bzw. wo man die Datei einbindet als nur mit der functions.php. Man kann auch noch eine andere Datei einbinden die z.B. nur im Backend aktiv ist und spart sich damit die is_admin-Abfragen.

    Das "Dieser Code gehört in die functions.php" sollte man sich so langsam mal abgewöhnen, ausgenommen man schreibt gerade ein Theme. Die Faustregel lautet: Wer ein Theme schreibt, nutzt die functions.php. Wer ein bestehendes (fremdes) Theme um Funktionalität erweitern will, nutzt Plugins.

  19. Borko sagt:

    Hi Frank,

    ich hatte nach einer Möglichkeit gesucht, wie ich Inhalte, die nur eingeloggt für den Leser sichtbar sind, nach einem Monat veröffentlichen kann - aber dann auch mit dem aktuellen Datum, erst dann in den normalen Rss-Feed usw.

    Ich wollte nämlich vermeiden, dass wenn Leute den Feed abonniert haben oder regelmäßig auf die Seite kommen, den Text dann nicht mehr sehen, weil er ja quasi in der klassischen Blog-Timeline verschwindet.

    Wenn ich jetzt dein zweites Beispiel nehme, kann ich dann genau das bewirken?

    (oder denke ich jetzt zu kompliziert?)

    Danke auf jeden fall schon mal für den Tipp, ich werde das heute abend einfach mal ausprobieren.

    • @Borko: ja, der Code macht dies, wobie das is_feed() raus muss, sonst ist es direkt im Feed; wenn nur is_admin() und is_preview() darin läßt, dann lesen die freien Leser erst, wenn der Zeitraum rum ist.

  20. Borko sagt:

    Vielen Dank :)

  21. Michael sagt:

    Sehr sinnvolle Sache, das werde ich doch gleich mal ausprobieren. :)

  22. Dabid sagt:

    Tja , gelernt ist eben gelernt. Ich wünschte ich hätte auch so viel Ahnung von der Materie und könnte schön Coden und klein Scripte schreiben...

  23. Simona sagt:

    Bin begeistert! Wusste zwar das es geht, hatte bisher nur bei all meinen versuchen immer einen fehler dabei, nun ist mir Lösung quasi auf dem goldenen Teller serviert worden !!! Danke! Das sparrt mir Stunden!

  24. Sabine sagt:

    Die zeitversetzte Veröffentlichung nach bestimmten User-Gruppen wie "ucurrent_user_can('read')" ist ein guter Tipp. Meiner Meinung nach würde WP ohnehin eine verbreiterte Rechtevergabe und verbesserte Veröffentlichungs-Filter gut zu Gesicht stehen (wie z.B. bei Joomla - auch wenn das andere Zielgruppen hat).

  25. Till sagt:

    Danke für die gute Anleitung. Meine Frage: Kann man irgendwie zusätzlich erreichen, dass die Inhalte zeitversetzt für verschiedene Nutzergruppen veröffentlicht werden? Also Gruppe 1 bekommt den Inhalt z. B. 6 Stunden früher als Gruppe 2?

  26. Fiona Meier sagt:

    Kann man dieses Feature auch für mehr als 2 Nutzergruppen verwenden?

  27. Werner sagt:

    Die Idee, bestimmte Artikel für Abonnenten sofort zur Verfügung zu stellen und für alle normalen Besucher erst einige Zeit später zu veröffentlichen, ist ziemlich gut. Da findet sich doch sicher ein gutes Einsatzgebiet dafür, danke dir!

  28. Klabund sagt:

    Sicher sehr sinnvoll, wenn man einen gut laufenden Blog hat, und man in Urlaub fahren will o.ä. Für meine eigenen Blogs eher uninterssant, weil es keiner Sauf auffallen würde, wenn mal 1 Monat nix neues geschrieben wird xD

  29. Rudi sagt:

    Habe es kurz getestet, aber wir bereits oben erwähnt..da sollte der Blog schon sehr gut laufen.

  30. Alexa sagt:

    Cool, da hat sich mal jemand etwas richtig sinnvolles ausgedacht. Danke schön, das werde ich wohl gleich mal austesten.

  31. Tobias sagt:

    Vielen Dank! Danach habe ich schon länger gesucht. Zwar lassen sich Artikel gut in WordPress vorbereiten. Für den letzten Schliff muss ich aber oft doch veröffentlichen. Da passt es super, wenn die Änderungen für den Leser eine Zeit lang nicht sichtbar sind.

    Auf welche Inhalte genau wirkt sich der Code aus. Nur auf neue Artikel und Seiten oder auch auf Änderungen? Z.B. Erweiterungen von Artikeln, Umsortierungen in andere Kategorien...?

  32. Gabriel sagt:

    Hallo, vielen Dank!

    Bei neu erstellten Artikeln funktioniert es perfekt!
    Was muss ich tun, damit es auch funktioniert, wenn ich einen vorhandenen Artikel aktualisiere? Ich habe meine Artikel auf der Startseite nämlich nach last modified sortiert.

  33. Andy sagt:

    Bin über google hierher gekommen. Habe genau sowas gesucht über den Content zeitversetzt zu posten. Habs eben gleich mal probiert und getestet und es klappt auf Anhieb (obwohl ich gar kein PHP Profi bin) ;-) Super! Danke dafür. Muss ich gleich mal weiter stöbern bei den WordPress Snippets :-)
    LG
    Andy

© 2013, since 2005 bueltge.de [by:ltge.de] · Theme is built by ThemeShift