• Hallo Forum,
    ich hätte nochmal eine Anfängerfrage…

    Ich bin grade dabei mich mit dem Thema Plugin zu beschäftigen um das Backend für eine Zeitkarte zu erstellen.
    Da ich mich mit dem Frontend nicht wirklcih beschäftigen möchte (da haben wir jemanden, der deutlich kreativer ist), möchte ich dem Frontend im Prinzip nur Daten zu Verfügung stellen bzw welche Empfangen.

    Zum Daten anzeigen habe ich mittlerweile shortcodes gefunden, wobei das ja nicht so sehr performant sein soll?
    Gibt es bessere Wege eine PHP-Variable im Frontend auszugeben, ohne dass ich im Backend wissen muss was da vorn passiert?

    Genauso der andere Weg.
    Wie bekomme ich die Daten am besten aus dem Frontend in meine PHP-Funktionen?

    Könnt Ihr mir ein paar Stichwörter nennen, nach denen ich Googlen kann?

    Dankeschööön
    Carsten

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

    (@pixolin)

    Moderator (nicht mehr aktiv)

    Shortcodes sind immer dann sinnvoll, wenn du dem/der Anwender/-in eine Möglichkeit geben möchtest, die Ausgabe einer Funktion an einer beliebigen Stelle in Seiten und Beiträgen zu platzieren. Vor allem bieten nicht alle Themes Schnittstellen an, um die Ausgabe über einen Hook zu steuern. Der WordPress-Core bietet Hooks, um Inhalte im Header, Footer oder vor/nach dem Inhalt einer Seite auszugeben. Das ist aber nicht besonders flexibel.

    Was die Performance angeht: Wenn du ohnehin ein eigenes Theme schreibst, ist es sinnvoller, direkt eine PHP-Funktion einzubinden, statt die Funktion über do_shortcode() erst einmal aufzurufen und dann erst zu rendern. Natürlich ist die Ausgabe von reinem HTML schneller, als erst eine (vielleicht auch umfangreiche) PHP-Funktion zu rendern, aber grundsätzlich sehe ich hier keine nennenswerten Performance-Einbußen.

    Shortcodes waren lange Zeit das bevorzugte Mittel, um Funktionen im Frontend auszugeben. Mit der Einführung des Block-Editors bieten sich neue Möglichkeiten, die PHP-Ausgabe in Form eigener Blöcke umzusetzen. Das ist bisher aber noch etwas entwicklungslastig.

    Thread-Starter telefisch

    (@telefisch)

    Hmm…
    ich will kein eigenes Theme schreiben sondern lediglich Daten „organisieren“ und dem Frontend Designer die Freiheit geben das Theme zu verwenden, was ihm gefällt.

    Wahrscheinlich wäre dann wohl ein Widget bzw. mehrere das Mittel der Wahl…

    Moderator Bego Mario Garde

    (@pixolin)

    Moderator (nicht mehr aktiv)

    Ich verstehe nicht, wieso du jetzt auf Widgets kommst.

    Wie gesagt: Shortcodes sind eine gebräuchliche Methode, um Funktionen an beliebiger Stelle in Seiten und Beiträgen auszuführen – es sei denn, du verwendest einen eigenen Block.

    Thread-Starter telefisch

    (@telefisch)

    Mit Shortcodes kann ich doch nur daten anzeigen oder kann ich damit auch Daten eingeben?
    Und bevor ich ein Theme baue (das wäre doch komplett seitenübergreifend?) würde ich dann doch die Eingabebereiche mittels widgets bauen oder hab ich das Konzept immer noch nicht begriffen?

    Nach meinem Verständnis sind Themes in erster Linie das Look & Feel und sollten m.E. für bessere Austauschbarkeit nur bedingt Code / Funktionen beinhalten.
    Widgets sind Steuerelemente, wie Buttons und Textfelder auch, nur mit besonderer Funktion.
    Plugins sollten m.E. möglichst nur Funktionalität „hinter den Kulissen“ erweitern.

    Mir fehlt hier etwas die Trennung zwischen Frontend und Backend bzw. Frontend und Geschäftslogik. Allerdings ist WordPress ja auch ein sehr komplexes Thema, sodass ich mir gut vorstellen kann, dass ich es noch nicht begriffen hab 😉

    Hallo,

    Mit Shortcodes kann ich doch nur daten anzeigen oder kann ich damit auch Daten eingeben?

    Mit Shortcodes kannst du bestimmte Dinge ausgeben (z. B. eine Galerie, die eine bestimmte Anordnung oder ein Design von Bildern erhalten soll). Das Plugin für die Galerie (entweder eigene oder z. B. aus dem WordPress Repository) könnte z. B. Shortcodes zur Verfügung stellen.

    Seit der Einführung des Block Editors werden aber auch viele Blöcke im Rahmen von Plugins angeboten, die die Funktionalität von Shortcodes zumindest teilweise ersetzen (können).

    Bei den Blöcken findet man die Eigenschaften, die – um bei dem Beispiel mit der Galerie zu bleiben – über den Shortcode „mitgegeben“ werden, in der Seitenleiste. Das ist natürlich wesentlich benutzerfreundlicher.

    Widgets enthalten Inhalte, die z. B. auf jeder Seite angezeigt werden. Beispiel: Footer oder die Seitenleiste. Konkret: Wenn wir die neuesten Beiträge in der Seitenleiste anzeigen lassen möchte, könnte man dafür den Block „Neueste Beiträge“ verwenden.

    Anderes Beispiel: Im Footer soll das Impressum und die Datenschutzerklärung gezeigt werden. Beide Links können in welcher Art auch immer (z. B. über den Absatz-Block) in einem Footer-Widget erfasst werden.

    Viele Grüße
    Hans-Gerd

    Moderator Bego Mario Garde

    (@pixolin)

    Moderator (nicht mehr aktiv)

    Mit Shortcodes kann ich doch nur daten anzeigen oder kann ich damit auch Daten eingeben?

    Du kannst mit einem Shortcode auch Attribute übergeben.
    Ich hab gerade erst zu einer anderen Frage hier im Forum ein kleines Plugin geschrieben, das Dateien aus einem Verzeichnis ausliest und per Shortcode in einer Seite oder einem Beitrag ausgibt:

    https://github.com/pixolin/pix-dirlisting/blob/main/pix-listing.php#L24

    Der Shortcode lautet hier [dirlisting name="{verzeichnisname}"], der Anwender kann also als Attribut angeben, welches Unterverzeichnis ausgegeben werden soll.

    … oder bezieht sich „Daten eingeben“ auf Webseitenbesucher, die z.B. ein Formular ausfüllen sollen? Die Kontaktformular-Plugins, die mir spontan einfallen, bieten alle einen Shortcode an, um im Frontend ein Formular auszugeben.

    Und bevor ich ein Theme baue …

    Kann es sein, dass du das völlig falsch verstanden hast? 🙂
    Du hast nach der Performance von Shortcodes gefragt und der Vollständigkeit halber habe ich erwähnt, dass es die Möglichkeit gibt, mit do_shortcode() einen Shortcode in einem Theme-Template auszuführen. Das ist aber nicht so performant, wie wenn du die Funktion, die mit dem Shortcode verknüpft ist, direkt aufrufst.
    Die Tatsache, dass man (irgendwer, nicht du) in einem Theme Shortcodes ausführen kann bedeutet aber nicht, dass du das machen sollst. 🙂

    Nach meinem Verständnis sind Themes in erster Linie das Look & Feel und sollten m.E. für bessere Austauschbarkeit nur bedingt Code / Funktionen beinhalten.

    Korrekt. Shortcodes sollten mit einem eigenen kleinen Plugin eingebunden werden. Das ist aber keine Raketenwissenschaft. Kleine Anleitung gefällig?

    1. Du erstellst auf deinem Computer ein Verzeichnis abcshortcode.
    2. In dem Verzeichnis erstellst du mit einem Code-Editor eine Datei abcshortcode.php.
    3. In der Datei fügst du folgende Zeilen ein:
      <?php
      /*
       * Plugin Name: ABC Shortcode
       * Description: Fügt den Shortcode [abc] hinzu.
       */
      add_shortcode( 'abc', 'abc_shortcode' );
      function abc_shortcode() {
        return '<h2>Mein Shortcode wird hier ausgegeben.</h2>';
      }
    4. Du komprimierst das Verzeichnis abcshortcode als zip-Datei und installierst es über Plugins > Installieren > Hochladen. Aktivieren, in einer Seite [abc] eingeben, testen.

    Wie das mit den Attributen funktioniert, kannst du in der Dokumentation und zahlreichen Tutorials im Web nachlesen.

    Widgets sind Steuerelemente, wie Buttons und Textfelder auch, nur mit besonderer Funktion.

    Widgets sind sowas von 90er Jahre … 😀

    Im Ernst: hast du schon mal im Smartphone eine Sidebar gesehen? Und wie häufig tippst du bei der Desktop-Ansicht auf die Widget-Links? Es hat schon einen Grund, wieso Widgets bei den neuen Standard-Themes (seit „Twenty Twenty“) in den Footer gewandert sind.

Ansicht von 6 Antworten – 1 bis 6 (von insgesamt 6)
  • Das Thema „Werte aus Plugin zum Frontend übergeben“ ist für neue Antworten geschlossen.