Tabelle für jeden Beitrag
-
Hallo,
ich kenne mich mit WordPress aus, aber jedes Plugin kenne ich natürlich nicht. Deshalb wollte ich mal fragen, ob jemand ein Plugin kennt, das jedem Beitrag eine Tabelle zufügt, bzw. sowas wie „Advanced Custom Fields“, sodass diese Werte aber auch im Frontend als Tabelle (oder so etwas) angezeigt werden.
Beispiel: Reichweite, ich trage in dieses Feld „60 %“ ein.
Dann sollte das in einem Kasten im Frontend bei dem Beitrag stehen: „Reichweite: 60 %Danke für jede Antwort!
~ Bastbra
-
Das kannst du dir mit wenig Aufwand selber basteln.
- Du installierst und aktivierst Advanced Custom Fields.
- Du fügst eine neue Feldgruppe hinzu, die aus den Textfeldern „Reichweite“, Stromanschluss“ und „Verbrauch“ besteht.
- Du fügst zwei Beiträge hinzu. Bei einem gibst du alle drei Werte ein, beim zweiten nur einen Wert.
- Du erstellst mit dem Plugin Code Snippets oder in der
functions.php
deines Child Themes oder deinem Plugin folgendes Code-Snippet:add_filter( 'the_content', 'verbrauchsdaten' ); function verbrauchsdaten( $content ) { $reichweite = get_field( 'reichweite' ); $stromanschluss = get_field( 'stromanschluss' ); $verbrauch = get_field( 'verbrauch' ); if ( $reichweite || $stromanschluss || $verbrauch ) { $content .= '<h3>Verbrauchsdaten</h3> <table> <tr><td>Art</td><td>Wert</td><td> </td></tr>'; if ( $reichweite ) { $content .= "<tr><td>Reichweite: </td><td>$reichweite</td><td>km</td></tr>"; } if ( $stromanschluss ) { $content .= "<tr><td>Stromanschluss: </td><td>$stromanschluss</td><td>Volt</td></tr>"; } if ( $verbrauch ) { $content .= "<tr><td>Verbrauch: </td><td>$verbrauch</td><td>Kilowatt</td></tr>"; } $content .= '</table>'; } return $content; }
Mit
add_filter( 'the_content', 'funktionsname' );
durchläuft jeder Beitrag einen Filter. Die Funktion enthält Angaben, die an den vorhandenen Inhalt angehängt werden sollen.Durch die if-Statements wird die Tabelle „Verbrauchswerte“ nur dann angehängt, wenn mindestens ein benutzerdefiniertes Feld ausgefüllt wurde. Die Tabelle enthält nur die Zeilen, für die auch Werte gesetzt wurden.
Vielen Dank erstmal für den Code, auch wenn ich die Angaben wie „Volt“ nicht brauche, die kann ich ja aber einfach selbst aus dem Code entfernen.
Das wird bei mir momentan ausgegeben. Werte sind zwar eingetragen, aber er zeigt nur „Stromanschluss“ an.
Es gibt also kein Plugin dafür? Auch wenns mir ohne natürlich auch lieber wäre. ::
Grüße,
Bastbra-
Diese Antwort wurde vor 5 Jahren, 5 Monaten von
Bastbra geändert.
… auch wenn ich die Angaben wie „Volt“ nicht brauche, die kann ich ja aber einfach selbst aus dem Code entfernen.
Ich wollte dir ja auch keinen fertigen Code liefern, sondern grundsätzlich erklären, wie du da etwas mit wenig Aufwand umsetzen kannst. Ob Das Volt sind oder Promille oder … weißt du selber besser.
Werte sind zwar eingetragen, aber er zeigt nur „Stromanschluss“ an.
Dann stimmen Feldnamen und Abfrage nicht überein.
Wenn du als Feld „Promille“ eingibst und der Feldnamepromille
ist, musst du$promille = get_field( 'promille' );
abfragen und auch die if-Statements entsprechend anpassen. Fragst du$promille = get_field( 'promile' );
ab (mit Tippfehler im Feldwert) bekommst du auch keine Ausgabe.Es gibt also kein Plugin dafür?
Weiß ich nicht. Ich kenne nicht alle > 50k Plugins. Vielleicht gibt es eins?
Das Feld „Reichweite“ wird bei mir einfach nicht angezeigt, am Code kann es nicht liegen. Was mir aber auffällt ist, dass dieses Feld bei mir gar nicht gespeichert wird, sondern bei Reload nach Speicherung immer leer ist.
Bedienungsfehler. Prüf nochmal die Feld-Einstellungen in Advanced Custom Fields auf Tippfehler und gleich die Feldnamen mit dem Code ab.
Ich hatte das extra getestet; Code sollte funktionieren.
Keine Tippfehler vorhanden, er speichert die Sachen ja gar nicht ab.
Ich kann nicht beurteilen, was du jetzt ausprobiert hast.
Aber wenn du z.B. ein Textfeld „Stromanschluß“ anlegst, wird der Slug auf
stromanschlus
gesetzt. Fragst du dannget_field('stromanschluss')
ab, wird nichts ausgegeben. Änderst du in ACF den Feld-Slug aufstromanschluss
, ist das Feld im Beitrag leer (weil der Wert unterstromanschlus
gespeichert wurde) und es wird wieder nichts ausgegeben. Erst wenn du dann wieder etwas einträgst, klappt es. Deshalb mein Hinweis, die Feldnamen nochmal zu prüfen.Das habe ich auch schon oft getan, aber daran liegt es nicht, da stimmt alles. Wenn ich beim Beitrag in das Feld (Adv. C. Fields) steht dort „Reichweite“, trage ich als Wert z.B. „123“ ein und speichere, dann wird es nicht angezeigt im Frontend.
Wenn ich nach dem Speichern meine Beitragsseite reloade, dann ist die „123“ direkt weg. Der Editor speichert also, warum auch immer, diesen Wert nicht.
Probier’s nochmal von vorne:
ACF: Felder anlegen
Im Beitrag Felder ausfüllen
Im Frontend anschauen
Danke für die Hilfe, aber das Reichweite-Feld will einfach nicht funktionieren. Ich werde in den nächsten Tagen noch etwas daran rumprobieren, mal schauen, ob das dann klappt. Jedenfalls hat mich deine Hilfe ein gutes Stück weiter gebracht, auch wenn ich kein Plugin dafür gefunden habe, dass das so macht, wie ich das auch möchte.
Geh mal ne Runde um den Block.
Wenn du wiederkommst, entdeckst du den Fehler auf Anhieb. 😉
- Das Thema „Tabelle für jeden Beitrag“ ist für neue Antworten geschlossen.