1. Herzlich willkommen bei WPDE.org, dem grössten und ältesten deutschsprachigen Community-Forum rund um das Thema WordPress. Du musst angemeldet oder registriert sein, um Beiträge verfassen zu können.
    Information ausblenden

Shortcode platzieren (für Redakteure ohne Codekenntnisse)

Dieses Thema im Forum "Plugins und Widgets" wurde erstellt von Raphael, 18. November 2020.

  1. Raphael

    Raphael Well-Known Member

    Registriert seit:
    8. September 2005
    Beiträge:
    846
    Zustimmungen:
    17
    Hi Community,
    ich suche eine Möglichkeit eine Installation so aufzubereiten, dass auch Redakteure, die gar nichts mit HTML zu tun haben wollen, sie bedienen können. Es geht darum, dass ein Woocommerce - Shortcode immer als erstes im inhalt platziert wird. Danach kommt meistens Text oder eine Überschrift, manchmal auch ein biisschen Code. Das ist dann problematisch.

    Der Codeteil wird nämlich im Classic-Editor per Copy&Paste von irgendwo übernommen, in der visuellen Ansicht - und wenn man HTML nicht lesen kann - sieht man dann keine Bugs und im Nullkommanichts ist dann der Woocommerce-Shortcode in irgedeinem HTML-Element drinnen, wo er nicht reinsoll.

    Möglich wäre natürlich Gutenberg, aber da habe ich die Erfahrung, dass Menschen, die jahrelang mit dem Classic-Editor gearbeitet haben, mit Gutenberg überhaupt nicht zurecht kommen. Wenn es aber gar nicht anders geht, dann halt Gutenberg...

    Ideal wäre eigentlich ein benutzerdefiniertes Feld. Da sehe ich aber mehrere Probleme: Das größte dabei: Das Benutzerdefinierte Feld kann ich ja nicht in the_content reinkriegen. Oder kennt jemand eine Möglichkeit den Shortcode per jQuery (z. B.) als erstes Element in the_content zu importieren? Falls ja, wäre ich über eine kurze Beschreibung der Idee froh. Den completten code kann ich dann sicher googeln.

    Danke für Ideen!
    Raphael
     
  2. Shadow

    Shadow Well-Known Member

    Registriert seit:
    12. Februar 2007
    Beiträge:
    2.837
    Zustimmungen:
    21
    Um Wordpress Shortcode zu nutzen braucht man keine Codekenntnisse sondern nur beachten zb [meinshortcode meinparameter="ja ich kann"] die eckigen klammer und die parameter nach vorgabe angeben.

    die zweite Idee von dir ein benutzerdefiniertes Feld (custom field) und dieses dann automatisch zb immer bei frontend ausgabe zb vor dem Content ausgeben, ist kein Problem, da braucht der Redakteur nichts tun außer im Custom Field den Inhalt eingeben oder auswählen, nur du muss Codekenntnisse (PHP) haben, bzw du musst jemand kennen der die diesen Code (als Plugin, Funktionen) programmiert.
    damit der Redakteur dann es sehr einfach hast, sollst du einen Custom Block im Editor erstellen, dort das oder die gewünschten Felder (custom Fields) einbinden, dann per Hook (PHP - javasdript nicht notwendig) bei (vor, nach ...) jeden Beitrag (kann auch gefiltert werden) werden die Custom Fields dann ausgegeben.
    es gibt auch so manch Plugins die in diese Richtung helfen könnenn, ich verwende seit jahren selbstprogrammierte Plugins dafür.
     
  3. Raphael

    Raphael Well-Known Member

    Registriert seit:
    8. September 2005
    Beiträge:
    846
    Zustimmungen:
    17
    Nö. sorry, das meinte ich nicht so. Das Problem ist:

    So solle es sein:
    Code:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Wenn der Redakteur in der visuellen Ansicht arbeitet, dann kommt oft das raus:
    Code:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Ich hab auch noch schlimmere Kombinationen gesehen, der shortcode im <div> drinnen oder so. Der visuelle Editor ist für so was nicht geeignet. Die Redakteure können aber kein HTML. Den Gutenbergeditor wollen sie auch nicht. (Die Lösung neue Redakteure einzustellen ist auch nicht OK. übrigens. ;) ) OK. Alles Mist, man sollte also aktiv werden.

    Daher würde ich gerne z. B.
    1) ein Custom Field anlegen, da kann der Redakteu den Shortcode einfüllen.
    2) Irgendeinen Codeschnipsel haben der den Inhalt des Feldes als ERSTEN INHALT in den Content schiebt. Also ca. so im Quelltext :

    Code:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Ein "normales" Custom Field ksnn ich ja überall im Loop hinschieben, wo ich will. aber nicht IN den content. Vor den Content geht, nach dem Content geht. Aber nicht IM Content. Aber mit jQuery prepend könnte ich es z. B. in den Content reinschieben. Nur hab ich keinen Plan, wie das funktionieren soll. daher die Frage, ob jemand so was Ähnliches schon mal ausprobiert hat.

    Ist das jetzt etwas besser verständlich?
     
  4. b3317133

    b3317133 Well-Known Member

    Registriert seit:
    21. November 2014
    Beiträge:
    7.953
    Zustimmungen:
    846
    Finde die entspr. Theme Datei für die relevanten Seiten, die das <div class="entry-content"><!-- hier einfügen --><?php the_content(); ?></div> o.ä. enthält und füge die Ausgabe Deines Custom Fields dort ein. Alternativ nutze einen the_content Filter und füge die Ausgabe dort ein.
     
    Raphael gefällt das.
  5. Shadow

    Shadow Well-Known Member

    Registriert seit:
    12. Februar 2007
    Beiträge:
    2.837
    Zustimmungen:
    21
    mit <code>add_filter( 'the_content', 'function');</code> kannst du zumindest anfang und ende von content deinen Shortcode aus Custom Field platzieren und damit auch deine eigene Wunschclassen unabhängig vom editor setzen, falls irgendwelche DIV noch nicht beendet wären (zb vom thema) kannst dies auch in der function von oben lösen.
    bzw du baust dir dann eigenen Shortcode den der Redakteur irgendwo im content setzten kann, wo du wiederum in dieser Function dann bedenken kannst, das du diverse DIV usw beendet werden usw..
    auch wenn deine Redakteure Gutenbergblock noch verweigern, damit wäre das durch eigenen Shortcode Block einfacher.
     
  6. Raphael

    Raphael Well-Known Member

    Registriert seit:
    8. September 2005
    Beiträge:
    846
    Zustimmungen:
    17
    Jupp, das klingt gut. Danke!
     
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden