Veröffentlichungen in Vergangenheit absolut verhindern

  • Hallo liebe Wordpress Freunde!

    Folgend etwas zu unserer Situation:
    Wir sind in einem Blogverzeichnis gelistet, das über unseren feed unsere Beiträge ausliest. Sobald es einen neuen Beitrag von uns hat, ist dieser dort wie in Stein gemeißelt fest im System und nicht lässt sich mehr ändern. Die Beiträge in diesem Verzeichnis werden chronologisch sortiert.

    In der Vergangenheit kam es mehrfach vor, dass unsere Beiträge ausversehen nicht auf "Veröffentlichen: sofort" standen, sondern auf einem Datum in der Vergangenheit. Warum ist uns nicht ganz klar, es kam aber immer wieder mal vor.

    Wird dies vor dem Veröffentlichen nicht bemerkt und geändert, landet unser Beitrag im Blogverzeichnis irgendwo in der Vergangenheit und damit in der totalen Versenkung.

    Wir suchen daher nach einem Plugin oder einer Funktion, die das folgende bewerkstelligt:
    Beiträge dürfen nicht an einem Zeitpunkt in der Vergangenheit veröffentlich werden dürfen sondern nur sofort oder in der Zukunft.

    Fällt hierfür jemandem etwas ein oder hat einer eine Idee?

    Vielen Dank!

    WP 3.9.2 mit twenty twelve child theme

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Eine erste Idee wäre ein Filter den man in den wp_insert_post_data Hook einhängt.

    Proof of Concept

    Code
    function mensmaximus_fix_post_time( $data , $postarr ) {
    	$data[ 'post_date' ] = current_time( 'mysql' );
    	$data[ 'post_date_gmt' ] = current_time( 'mysql', 1);
    	return $data;
    }
    add_filter( 'wp_insert_post_data' , 'mensmaximus_fix_post_time' , '99', 2 );

    Das funktioniert, hat aber gewaltige Nebenwirkungen! Auf diese Weise kann zwar nicht mehr in der Vergangenheit publiziert werden, ein geplantes Datum in der Zukunft geht aber auch nicht mehr. Der Code braucht also noch etwas Liebe bevor man ihn wirklich einsetzen kann.

    WordPress ist "frei" wie in Freiheit es zu nutzen, aber nicht im Sinne von Freibier. Wer also glaubt man bekommt rund um WordPress alles kostenlos, der irrt. Hilfe ist ein Geschenk für das man sich bedankt, dafür gibt es den 'Gefällt mir' Button. Wer das nicht kann und sich selbst nicht zu helfen weiss, muss sich bezahlte Unterstützung suchen.

  • Vielen Dank für deinen Beitrag!

    Ok, add_filter sagt also, dass wenn ein post "geinsertet" werden soll, die Funktion aufgerufen weren soll. Diese setzt beide Datumsangaben auf das aktuelle Datum. Richtig?

    Das ist ja soweit gut, außer, wie schon gesagt, dass auch Zukünftige Posts nicht mehr gehen.

    Es fehlt also quasi noch ein if() das abfragt ob die Datumsangaben vor dem aktuellen liegen. Welche müsste man hier vergleichen, post_date oder post_date_gmt? Bekommt diese if() Abfrage noch jemand hin?

    Würde mich riesig freuen.

    Vielen Dank!


  • Fällt hierfür jemandem etwas ein oder hat einer eine Idee?

    Die Idee habe ich geliefert inkl. Proof of Concept. Das volle Paket mit allen Funktionen inkl. Brainstorming gibt es in der Jobbörse.

    WordPress ist "frei" wie in Freiheit es zu nutzen, aber nicht im Sinne von Freibier. Wer also glaubt man bekommt rund um WordPress alles kostenlos, der irrt. Hilfe ist ein Geschenk für das man sich bedankt, dafür gibt es den 'Gefällt mir' Button. Wer das nicht kann und sich selbst nicht zu helfen weiss, muss sich bezahlte Unterstützung suchen.

  • Das ist ein Einzeiler. Habe ich grad mal erweitert:

    Aus beiden Daten wurde ein Timestamp mittels time() erstellt und dann wird geprüft, ob das Veröffentlichungsdatum kleiner ist als das aktuelle Datum.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!