Dynamische Manipulation des Post-Inhalts

  • Tach zusamm'!
    Bin ganz neu hier, dies ist mein erster Beitrag. :-)
    Ich bin gerade dabei die alte Vereinshomepage meines Fußballvereins zu modernisieren (bisher ist da alles noch hand-made). Da mir Wordpress recht gut gefällt, versuchte ich mich mal damit und möchte es nun ein bisschen in Richtung CMS "aufbohren".
    In der Datenbank unserer Fußball-Site liegen auch Hunderte von Spielberichten von unseren Fußballspielen. Diese würde ich gerne in Wordpress anzeigen, allerdings ohne jeden Spielberichts-Eintrag in meiner "alten" Datenbank einzeln als Post in Wordpress zu übernehmen. Nun habe ich folgendes vor: ich habe in der Wordpress-Datenbank einen Dummy-Post mit der Post-ID 7 liegen. Die Datei "single.php" habe ich so modifiziert, dass ich ganz am Anfang der Datei abgefrage, ob gerade dieser Dummy-Post mit der ID 7 angezeigt wird. Wenn ja, möchte ich den Datenbank-Eintrag mit der Post-ID 7 derart manipulieren, dass ich meinen aktuell ausgewählten Spielbericht im Feld "post_content" dieses Datensatzes eintrage. Danach soll der Bericht ganz normal mittels der "single.php" und der Funktion "the_content()" angezeigt werden. Im Prinzip funktioniert das auch, nur wird der Inhalt den ich gerade in den Datensatz geschrieben habe, immer erst beim nächsten Aufruf eines einzelnen Eintrags bzw. der "single.php" angezeigt. Kann es sein, dass hier irgendwelche Dinge asynchron ablaufen und die Aktualisierung der Datenbank bzw. des Datensatzes erst abgeschlossen ist, nachdem "the_content()" aufgerufen wird? Oder wird vom System schon vorher festgelegt was angezeigt wird, bevor ich meine Manipulationen zu Beginn der single.php vornehme? Wenn ich anschließend nämlich in der Datenbank meinen Post mit der ID 7 anschaue, dann steht tatsächlich der Bericht drin, den ich auch hinein schreiben wollte.
    Wäre schön, wenn mir jemand einen Tipp geben könnte.

    • 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

  • Hmmm, leider noch keine Antwort...
    Ist meine Frage zu kompliziert oder zu umständlich formuliert? Oder hab ich vielleicht in einem anderen Forum mehr Chancen?

  • Nun ja, mein altes System basiert auch auf einer mySQL-Datenbank. Um genau zu sein, habe ich bei der Installation von WP die WP-Tabellen sogar in der gleichen Datenbank abgelegt. Für die Eingabe meiner alten Spielberichte habe ich mir ein sehr aufwändiges Ligaverwaltungs-System programmiert, dass ich auch weiterhin zur Eingabe der Ergebnisse und der zugehörigen Spielberichte verwenden möchte. Nun möchte ich aber das Frontend für meine Ligaverwaltung, also wo der normale Seitenbesucher z.B. die Spielberichte lesen kann, in meine neue auf WP baisierende Homepage integrieren. Und damit ich nun nicht alle der bereits existierenden Spielberichte doppelt in meiner Datenbank abgelegt habe (einmal als "normaler" alter Spielbericht und einmal als WP-Post), möchte ich eben immer erst zum Zeitpunkts der Anzeige eines einzelnen Berichts (per "single.php") den Inhalt des gewünschten Spielberichts laden und anzeigen. Und da dies dynamisch geschieht, habe ich, sozusagen als Container für den Bericht, einen WP Dummy-Beitrag (#7) erstellt.
    Ich hoffe, dadurch ist ein bisschen mehr Licht in die Sache gekommen...

  • Man muss ja nicht den Datenbankeintrag manipulieren, sondern nur die Ausgabe, z.B. in der single.php:

    PHP
    // wenn Dummy-Beitrag
    if ( $post->ID==7 ) { 
    // Ausgabe nach Wunsch
    }
  • Ja so in etwa hatte ich mir das gedacht. Aber wieso willst du dann irgendwas in den Beitrag #7 *in der Datenbank* schreiben? Ich würde einfach beim Aufruf von Beitrag #7 ein entsprechendes Template laden, was den zugehörigen Spielbericht aus der anderen DB holt und ausgibt. Ich hab irgendwie das Gefühl dass du es dir unnötig schwer machst. ;-)
    (Ja so wie spickzettel das zwischenzeitlich tippste... auch wenn ich is_single(7) bevorzugen würde :-))

    Übrigens: ich grübel derzeit an einer ähnlichen Problematik, wo eine bestehende Ligaverwaltung fertige HTML-Dateien generiert (okay, "HTML" ist ein zu schönes Wort für den Code-Durchfall den diese Software produziert) die in WP eingebunden werden sollen. Ich wollte das über eine statische Seite mit entsprechendem Template lösen, die dann direkt die Ligaverwaltungs-Dateien einbindet.

  • Ihr habt ja Recht, ich mach es mir unnötig schwer, aber darin sehe ich ja gerade meine (oder Eure?) Herausforderung. ;-)
    Nein, im Ernst: so wie Spickzettel das beschrieben hat, habe ich es auch schon gemacht und es hat auch funktioniert. Meine Idee war einfach die, dass ich die "single.php" so wenig wie möglich manipulieren möchte. So wie ich es mir vorgestellt hatte, hänge ich einfach 3 oder 4 Zeilen Code ganz oben über den Sourcecode von single.php und der Rest bleibt unberührt und somit meiner Meinung nach, besser wartbar bei Updates usw.
    So wie von Euch vorgeschlagen, muss ich halt innerhalb der single.php meinen gecustomizten Code einfügen, was mir weniger elegant erschinen.
    Mal was anderes: ich bin ja noch ganz brutaler WP-Neuling. In einer Doku hab ich gelsen, dass ich eine eigene single_x.php schreiben kann, die dann verwendet wird, wenn ich den Post mit der ID "x" anzeige. Das geht bei mir aber nicht. Stimmt die Aussage überhaupt?

  • Ja, naja, nicht ganz. Zumindest nicht ganz so einfach wie eine category-XY.php oder ein Seitentemplate. Aber fast. ;-) Das wären dann deine 4-5 Zeilen:

    PHP
    // wenn Dummy-Beitrag
    if ( is_single(7) ) { 
      require 'single-7.php';
      exit;
    }


    und in der single-7.php kannst du dann beliebigen Code haben. Im Idealfall verhält sich die single-7.php fast wie eine "normale" Template-Datei, d.h. inkl. get_header(), get_footer() usw...

    ich denke viel eleganter gehts kaum.

  • Ja okay. Aber wenn meine "single-7.php" praktisch eine "angepasste Kopie" der "single.php" ist, dann kann ich bei einem WP-Update, was vielleicht mit einer veränderten Version von "single.php" verbunden ist, mein ganzes Geraffel neu machen. Auf meine ursprünglich gedachte Art, hätte ich weiterhin nur meine 3 oder 4 Zeilen oben anzufügen und fertig.

  • Das passt schon so. Bei WP-Ugrades wird ja der Inhalt von wp-content - d.h. auch dein Theme - nicht verändert. Falls doch Änderungen nötig sind (z.B. weil neue Template-Funktione dazu kommen), dann sind die sicher schnell gemacht.

Jetzt mitmachen!

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