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.
Thread-Starter
Bastbra
(@comicschau)
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 geändert vor 5 Jahren von Bastbra.
… 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 Feldname promille
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?
Thread-Starter
Bastbra
(@comicschau)
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.
Thread-Starter
Bastbra
(@comicschau)
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 dann get_field('stromanschluss')
ab, wird nichts ausgegeben. Änderst du in ACF den Feld-Slug auf stromanschluss
, ist das Feld im Beitrag leer (weil der Wert unter stromanschlus
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.
Thread-Starter
Bastbra
(@comicschau)
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
Thread-Starter
Bastbra
(@comicschau)
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. 😉