Support » Plugins » Plugin im Frontend verwenden

  • Gelöst tokri

    (@tokri)


    Hallo alle zusammen,

    ich beschäftige mich seit einiger Zeit mit WordPress und habe jetzt einige Tutorials für das erstellen von Plugins durch. Ich habe auch an meinem Plugin bereits gearbeitet und im Backend bzw. Adminbereich funktioniert es schon so, wie ich es will. Es werden Daten in eine von mir erstellte DB geschrieben und kann diese auch auslesen und bearbeiten.

    Was mir jetzt noch fehlt ist jener Teil, wo ich das Plugin dazu bringe, mir die Infos im Frontend auszugeben. Ich hätte gerne eine Tabelle im Frontend eingebunden, wo die Teilnehmer unserer Veranstaltung gepostet werden (DSGVO konform natürlich). Ich habe aber nirgends gefunden, wie ich das mache. Ich kann im Elementor nur Shortcodes auswählen und ich vermute ich muss das irgendwie so machen. Oder bin ich da jetzt komplett am Holzweg?

    Ich glaube ich habe mich da irgendwo verlaufen oder habe da eine falsche Vorstellung, wie man das umsetzt.

    Kann mir da bitte jemand kurz helfen?

    Danke

    • Dieses Thema wurde geändert vor 1 Jahr von tokri.
Ansicht von 3 Antworten - 1 bis 3 (von insgesamt 3)
  • Moderator Bego Mario Garde

    (@pixolin)

    Nehmen wir an, du hast eine Funktion hallowelt(), die „Hallo Welt“ zurückgibt:

    function hallowelt() {
      return 'Hallo Welt';
    }

    Die Ausgabe der Funktion soll aber nicht irgendwo, sondern im Footer im Frontend erfolgen. In dem Fall legst du ein Child-Theme an, kopierst das Template footer.php vom Parent-Theme in das Child-Theme und fügst eine Zeile mit der Funktion hinzu, sinngemäß sowas wie <?php echo hallowelt(); ?>.

    Vielleicht möchtest du die Funktion aber statt im Footer im laufenden Text von Beiträgen und Seiten ausgeben können, wann immer der/die Anwender/-in es möchte? Dazu sind Shortcodes praktisch, die du selber definieren kannst.

    add_shortcode( 'hallo', 'hallowelt' );

    fügt einen Shortcode [hallo] hinzu, der den Rückgabewert der Funktion hallowelt() in den Inhalt einfügt, der dann vom Template im Frontend wieder ganz normal ausgegeben wird. Damit die Ausgabe nicht vorzeitig irgendwo erfolgt, dürfen Shortcode-Funktionen nur einen Wert mit return zurückgeben (und nicht mich echo ausgeben).

    Auf dein konkretes Beispiel angewandt bedeutet das, dass du im Plugin z.B. einen Shortcode [teilnehmer] hinzufügst

    add_shortcode( 'teilnehmer', 'teilnehmerliste_abrufen' );

    und dann mit der Funktion teilnehmerliste_abrufen() die Abfrage der Datenbank vornimmst und mit einer Ausgabe zum Rendern des Shortcode per return hinzufügst. Sinngemäß sowas wie

    function teilnehmerliste_abrufen() {
      $output = 'Name, Vorname<br>';
      $db_abfrage = … // Abfrage der Datenbank
      foreach ($db_abfrage as $datensatz) {
      $output .= $datensatz['name'] . ', ' . $datensatz['vorname'] . '<br>';
    
      return $output;
    }

    Nun müsste, wann immer der Shortcode [teilnehmer] verwendet wird, im Frontend eine Liste der Teilnehmer ausgegeben werden.

    Shortcodes können noch mit Parametern erweitert werden, die z.B. für die Datenbankabfrage übergeben werden. Die Dokumentation hat da ein hübsches Beispiel: https://developer.wordpress.org/plugins/shortcodes/shortcodes-with-parameters

    Einsteiger wählen öfters den Weg, statt der von WordPress bereits angebotenen Funktionen eigene Datenbanktabellen und gesonderte Abfragen zu verwenden. Es ist aber leichter, z.B. Teilnehmende als eine eigene Inhaltsart zu behandeln und dazu einen eigenen Inhaltstyp (Custom Post Type) zu erstellen. Das hat den Vorteil, dass WordPress dir gleich ein eigenes Menü zum Bearbeiten und hinzufügen einrichtet. Mit Custom Fields kannst du Meta-Angaben wie Geburtsdatum, Telefonnummer oder bezahlten Eintritt festhalten. Du kannst auch eigene Kategorien („männlich, weiblich, divers“) oder ein ganz eigenes Sortierkriterium („Bundesland“) festlegen, was dir dann mit einer Meta-Query eine Ausgabe aller „Teilnehmerinnen, die vor 1984 geboren sind und in Bayern wohnen“ ermöglicht. Natürlich soll das Ganze nicht unnötig verkompliziert werden, aber meistens ist es einfacher, einen Custom Post Type anzulegen, als das Rad bzw. die Datenbank-Tabelle neu zu erfinden.

    Thread-Starter tokri

    (@tokri)

    Vielen Dank für die ausführliche Hilfe. Ich werde das morgen gleich testen. Das mit den Custom Post Types muss ich mir noch anschauen. Aber ich brauche da wirklich nichts kompliziertes, da es für einen Verein ist und eine Reine Liste an Nicknamen ausgeben soll, die an der Veranstaltung teilnehmen wollen.

    Thread-Starter tokri

    (@tokri)

    Danke, das mit den Shortcodes funktioniert genau so, wie ich es haben will. Das hat mir noch gefehlt den Zusammenhang mit Short Codes.

    Ich werde das nun auf gelöst setzen.

    Vielen Dank noch einmal

Ansicht von 3 Antworten - 1 bis 3 (von insgesamt 3)
  • Das Thema „Plugin im Frontend verwenden“ ist für neue Antworten geschlossen.