Seiten bzw. Kategorie automatisch neu laden

  • Hallo zusammen,

    ich bin gerade dabei ein Intranet aufzubauen und jetzt besteht folgende Aufgabenstellung.

    Wir haben einen großen Monitor der an der Wand hängt und auf diesem Monitor sollen immer die wichtigsten "Neuigkeiten" angezeigt werden. Alle Mitarbeiter (ca. 30) bekommen einen Zugang zum Intranet und sollen dann einen Beitrag verfassen, der dort angezeigt wird. Titel, Datum, Autor, 2 bis 3 Zeilen Text und das wars. Meine Vorstellung war, dass das über eine Beitrags Kategorie geregelt wird. Das passt soweit auch alles.

    Das Problem ist jetzt nur, dass der Monitor der da an der Wand hängt das Bild von einem PC abgreift. Schreibt man jetzt einen neuen Beitrag, dass müsste man zum entsprechenden PC und dort die Seite aktualisieren damit das auch angezeigt wird. Zum umständlich und nicht Sinn der Sache.

    Gibt es eine Möglichkeit, dass sobald ein neuer Beitrag für die entsprechende Kategorie verfasst wird, diese sich automatisch aktualisiert? Per Ajax oder irgendwie anders?

    Es gibt die Möglichkeit, dass der Browser die Seite z.B. alle 2 Minuten neu lädt. Das finde ich suboptimal da jedesmal das Bild kurz weg ist und man immer Bewegung drin hat. Das nötigt zum hinschauen und lenkt ab.

    Wäre super wenn mir da weitergeholfen werden könnte!

    Vielen Dank!

    VG
    Philip

    • 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

  • Du könntest das mit JavaScript und setInterval lösen. Die "schöne" Variante wäre per Ajax entweder nur den Bereich mit den Bereich mit den Artikeln komplett zu aktualisieren oder sogar nur neue Beiträge hinzuzufügen.

    Die schnelle Variante wäre einfach per JavaScript einen Reload der Seite zu machen (auch mit setInterval). Mit den von dir schon genannten Nachteilen.

    Es hängt sicher auch ein bisschen davon ab, wie "Fit" du in solchen Sachen bist. Die erste Variante (bzw.) Varianten sind auf jeden Fall deutlich aufwendiger als die "schnelle" Variante...

  • Man könnte auch per Ajax nachschauen, ob es in der entspr. Kategorie einen neuen Beitrag gibt und nur in dem Fall die aktuelle Seite neu laden, z.B. so in functions.php


    Voraussetzung WordPress 4.7. Bei WordPress 4.6.x benötigt man noch das WordPress REST API Plugin.

  • Hallo,

    vielen Dank für eure Antworten.

    Am besten gefällt mir die Lösung mit Ajax. Die werde ich auf alle Fälle ausprobieren! Leider kenne ich mich nicht sonderlich gut mit Ajax aus, aber ich denke ich schaffe das von b3317133 gepostete Code-Schnippselchen für meine Belange anzupassen. Da ich natürlich WP 4.7.1 nutze ist das ja nur die Kategorie und eventuell noch der Update Intervall.

    Ich bin sehr gespannt ob das so funktioniert, werde Rückmeldung geben.

    VG
    Philip

  • Das Code-Beispiel wird in der aktuellen Form auf jede Seite des ganzen Websites im Footer integriert, das willst Du ggf. nicht wirklich. ;)

    Man könnte ein is_category() oder is_page() oder ein anderes Conditional einbauen, damit es nur eine bestimmte Kategorie-Übersicht, Seite, o.ä. betrifft, z.B. so:

  • Du hast recht, ich brauche das wirklich nur für eine einzige Kategorie, im Moment zumindest. Da macht das Sinn das auch nur in dieser Kategorie drin zu haben.

    Vielen Dank für die super Hilfe. Ich werde das die Tage einbauen, sobald mein SSL Zertifikat da ist. :-)

  • Wahlweise kannst Du in dem Fall auch von der Datei [FONT=courier new]category.php[/FONT] Deines Themes eine Kopie [FONT=courier new]category-1.php[/FONT] erstellen (1 = ID der Kategorie) und nur das Javascript, also [FONT=courier new]<script>[/FONT] bis inkl. [FONT=courier new]</script>[/FONT] als normalen HTML-Block in die Kopie vor [FONT=courier new]<?php get_footer(); ?>[/FONT] einfügen. WordPress benutzt dann automatisch dieses Template für die entspr. Kategorie und man braucht gar kein weiteres PHP, weiteres dazu auch hier.

  • Wahlweise kannst Du in dem Fall auch von der Datei [FONT=courier new]category.php[/FONT] Deines Themes eine Kopie [FONT=courier new]category-1.php[/FONT] erstellen (1 = ID der Kategorie) und nur das Javascript, also [FONT=courier new]<script>[/FONT] bis inkl. [FONT=courier new]</script>[/FONT] als normalen HTML-Block in die Kopie vor [FONT=courier new]<?php get_footer(); ?>[/FONT] einfügen. WordPress benutzt dann automatisch dieses Template für die entspr. Kategorie und man braucht gar kein weiteres PHP, weiteres dazu auch hier.

    Vielen Dank!

    Genauso habe ich es jetzt gemacht und es funktioniert einwandfrei!

    VG
    Philip

  • :smile: Bedanken kann man sich hier im Forum auch mit 'Like' unten rechts im entspr. Beitrag..

    Da hast du natürlich absolut recht.

    Ich finde Worte immer mehr Wert wie ein "Like"-Klick, aber da du mir wirklich sehr weitergeholfen hast bekommst du beides. ;-)

  • Jetzt muss ich diesen Thread nochmal hervorkramen.

    Sobald ich einen neuen Beitrag in der entsprechenden Kategorie veröffentliche wird diese aktualisiert, so wie es sein soll.

    Mein Problem ist jetzt aber, dass wenn ein Beitrag aktualisiert oder gelöscht wird, sollte auch aktualisiert werden. Ist das auch möglich?

    Im Betrieb merkt man halt doch immer wieder was man bei der Planung übersehen hat.

    Vielen Dank!

    VG
    Philip

  • Bei Aktualisierungen (= geänderter Beitrag) könnte man z.B. die Parameter so ergänzen:

    Code
    data: {
                per_page: 1,
                categories: 1,    // ID of your category
                'filter[orderby]': 'modified'
            },

    Der Code holt sich anhand der Sortierung (default: 'date') exakt einen Beitrag und vergleicht dessen ID mit dem gespeicherten. Man könnte natürlich auch mehrere Beiträge holen und anders vergleichen, da gibt es kaum Grenzen, die REST-API Parameter sind weitestgehend wie bei WP_Query. Frohes Basteln!

    Ergänzung: Zum Testen was Du zurückbekommst kannst Du die URL natürlich auch per Hand aufrufen, z.B.

    [FONT=courier new][COLOR=#000000]example.com/wp-json/wp/v2/posts?per_page=1&categories=1&filter[orderby]=modified[/COLOR][/FONT]

    Einmal editiert, zuletzt von b3317133 (25. Februar 2017 um 20:52)

  • Ich möchte hier kurz Rückmeldung geben, damit das nicht für immer und ewig offen bleibt falls jemand mal ähnliche Probleme hat.

    Der Seitenrefresh nach dem veröffentlichen eines neuen Beitrages hat wunderbar funktioniert, und tut das auch noch. Dass die Seite allerdings auch neu geladen wird wenn ich einen Beitrag ändere oder einen Beitrag lösche, das hat nicht funktioniert. Gab aber auch keine Fehlermeldung und nichts. Deswegen weiß ich nicht an was es lag. :-(

    Wir haben das Ganze jetzt über ein Addon von Firefox gelöst, das die Seite alle 30 Sekunden neu lädt. Meine Sorge, dass man das auf dem Monitor sieht ist unbegründet. Solange sich nichts getan hat merkt man das neu laden überhaupt nicht.

    Trotzdem vielen Dank für die tolle Hilfe!!!

    VG
    Philip

Jetzt mitmachen!

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