Problem mit Template Tags - Fachmänner gesucht

  • Hallo, liebe Gemeinschaft.

    Ich bastle nun schon einige Zeit daran rum und komme nicht weiter.
    Ich beschreibe mal kurz, was passieren soll, und dann, was ich schon habe, mit den noch unklaren Stellen, und hoffe, dass hier jemand das "aus dem Ärmel schütteln" kann.

    (Ich kann leider keinen Link posten, da das WP bereits mit Inhalten gefüllt ist, diese aber noch nicht zur Veröffentlichung freigegeben sind)

    IST:
    Ich habe eine Seite Namens "Termine" eingerichtet. Diese hat die ID 6.
    Ich habe hiervon eine Ebene tiefer mehrere Unterseiten (rund 100, werden immer mehr). Die Seite "Termine" ist im Menü im Header verlinkt, die Unterseiten sollen nur von der Seite "Termine" aus verlinkt sein. Die Unterseiten haben alle benutzerdefinierte Felder (datum, melder, ort, location), um eine automatisch generierte Liste erzeugen zu können.

    SOLL:
    Hier möchte ich nun, dass die Seite "Termine" ohne mein Zutun eine Liste/Tabelle erstellt (per CSS gestaltbar), in der alle Termine aufgelistet sind, der neueste, am nächsten zum Jetzt liegende, oben und der älteste unten steht, sich die Tabelle aus Datum, Ort, Location und Melder zusammensetzt und jedes dieser Elemente klickbar ist und auf den entsprechenden beitrag (Seite) verweist.
    Fein wäre es noch, wenn man ganz oben Knöpfe hätte, um die 4 Sortiermöglichkeiten zu bestimmen, also nach Datum, Ort, Location und Melder, aber das muss nicht unbedingt.
    Supergeil wäre es, wenn automatisch zwischenüberschriften erzeugt würden (2006, 2005, 2004, 2003, 2002 usw.), die gesondert formatiert werden könnten. Feiner muss es nicht unterteilt sein, Jahre reichen.

    IDEEN BISHER:
    in page.php habe ich nach the_content eingebunden:

    PHP
    <?php  global $id; 
    wp_list_pages("title_li=&child_of=$id&sort_column=post_title&sort_order=desc"); ?>

    Auf die im codex beschriebenen Möglichkeiten, bei sort_column zB auch aus wp_usermeta auszulesen (zB meta_value) sind mir nicht gelungen, vermutlich aus mangelndem Programmierwissen.

    Sollte ich noch ein <?php if (is_page('6')) ?> davor setzen, wenn ja, NUR das oder muss das noch weiter definiert werden, ich bin irgendwo darüber gestolpert, es sah schlau aus, aber ich kriege es nicht eingebunden.

    Was ich nun also bräuchte, wäre eine Formulierung, die später eine Ausgabe in der Form:
    <tr>
    <td id="datum">datum</td>
    <td id="ort">ort</td>
    <td id="location">location</td>
    <td id="melder">melder</td>
    </tr>
    für jeden Eintrag ausgibt, so dass ich das Aussehen per CSS definiere und die Liste sofort und immer aktuell ist.

    Ich stehe ab sofort auf dem Schlauch und bin für eure Gedanken und Hilfen sehr dankbar.

    xx Maria

    • 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

  • Hallo Maria,

    da hast Du ja ganz schön was vor... Aber ich halte das Problem für lösbar, und es sieht so aus, als hättest Du einige Ahnung von PHP.

    Um das, was Du vorhast zu realisieren, würde ich folgenden Ansatz wählen -- erstmal nur als Idee, mal abwarten, ob es noch bessere Vorschläge gibt.

    Ich würde zunächst ein WP-Plugin entwickeln, welches die zusätzlichen Felder in der Datenbank erzeugt und verwaltet, welches den Editorfeldern die zusätzlichen Eigenschaften verpasst und welches einige knackige Funktionen für die Ausgabe bereitstellt.

    Zur Datenbank: Es ist natürlich klar, dass die neuen Sortierkriterien eigene Datenbankeinträge haben müssen. Man könnte dazu entweder der Tabelle wp_posts 4 neue Spalten hinzufügen, oder eine neue Tabelle erzeugen und diese auf die Beiträge/Artikel mappen. Das einmalige Erzeugen dieser Felder muss in Deinem Fall nicht unbedingt das Plugin übernehmen.

    Weiterhin müssen im Artikel-Editor neue Felder erscheinen, über die man diese Eigenschaften auch einpflegen kann, so dass sie von dort aus in die Datenbank geschrieben werden.

    Letztendlich musst Du für die Seite "Termine" ein neues Template in Deinem Theme erstellen. Diese Template-Datei ist prinzipiell so aufgebaut wie die anderen Templates, nur statt dem Loop baust Du die Funktionen Deines Plugins ein. Wie man eine Funktion schreibt, die aus einer Datenbank eine komplexe HTML-Tabelle erzeugt, muss ich ja hier nicht ausführen. ;-)

    Nun zum Wie: WordPress stellt für Datenbank-Operationen die Klasse wpdb zur Verfügung. Für die Admin-Snapins und die Template-Funktionen gibt es die mächtige Plugin API -- die hat praktisch alles, was das Herz begehrt, nur leider ist es nicht immer dokumentiert (also ruhig fragen). Ansonsten ist der WP-Codex im Allgemeinen eine gute Wissensquelle.

    Ich hoffe, dass das als Anregung hilft. Wie gesagt, mal sehen, ob noch jemand andere Ideen hat.

  • Wow, das hört sich schon nicht schlecht an, merke aber, dass ich noch was klar stellen muss :)

    Ich bin mit dem oben geschriebenen mit meinem Latein am Ende, zwar habe ich einen kleinen Einblick in PHP, aber alles, was ich hier bisher versucht und geschrieben habe, ist das Top Limit meiner Recherchekünste bei selfhtml und Konsorten und im Codex. Irgendwann wurde aus Latein Spanisch und deshalb frage ich. Das ist ein ganz doofes Gefühl, überschätzt zu werden.

    Plugin entwickeln, Felder in der Datenbank hinzufügen, neue Felder im Artikel-Editor, aus einer Datenbank eine Tabelle erzeugen... das sind alles Dinge, an denen ich scheitern würde oder gescheitert bin, trotz nachblättern in genannten Ressourcen :/

    Und ich muss hierfür auch keinen Programmierwettbewerb gewinnen, es geht mir um eine möglichst simple Abfrage der Datenbank, die die bereits in WP 2.0.4 vorgesehenen benutzerdefinierten Felder (wo ich datum, ort, location und melder bereits angelegt habe) ausliest und daraus die Tabelle erstellt.

    Sortiermöglichkeitsänderungen und Zwischenüberschriften kann ich auch weg lassen, bzw. später irgendwann mal angehen, nur versuche ich, bis Sonntag dies hier zumindest am Laufen zu haben.

    Also bitte mich nicht überschätzen, auch wenns lieb gemeint ist. Ich kämpfe zwar, aber am oberen Limit ;)

    Aber gerne: weitere Ideen und Gedanken, und vielen Dank für diesen ersten!

Jetzt mitmachen!

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