• Gelöst Bastbra

    (@comicschau)


    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

Ansicht von 11 Antworten – 1 bis 11 (von insgesamt 11)
  • Moderator Bego Mario Garde

    (@pixolin)

    Das kannst du dir mit wenig Aufwand selber basteln.

    1. Du installierst und aktivierst Advanced Custom Fields.
    2. Du fügst eine neue Feldgruppe hinzu, die aus den Textfeldern „Reichweite“, Stromanschluss“ und „Verbrauch“ besteht.
    3. Du fügst zwei Beiträge hinzu. Bei einem gibst du alle drei Werte ein, beim zweiten nur einen Wert.
    4. 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>&nbsp;</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.
    FE535608-A2-DB-4-AE3-A8-A7-9-DDE4-EE842-AA

    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.
    Moderator Bego Mario Garde

    (@pixolin)

    … 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.

    Moderator Bego Mario Garde

    (@pixolin)

    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.

    Moderator Bego Mario Garde

    (@pixolin)

    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.

    Moderator Bego Mario Garde

    (@pixolin)

    Probier’s nochmal von vorne:

    ACF: Felder anlegen

    Screenshot ACF

    Im Beitrag Felder ausfüllen

    Screenshot Beitrag bearbeiten

    Im Frontend anschauen

    Screenshot Frontend

    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.

    Moderator Bego Mario Garde

    (@pixolin)

    Geh mal ne Runde um den Block.
    Wenn du wiederkommst, entdeckst du den Fehler auf Anhieb. 😉

Ansicht von 11 Antworten – 1 bis 11 (von insgesamt 11)
  • Das Thema „Tabelle für jeden Beitrag“ ist für neue Antworten geschlossen.