Support » Allgemeine Fragen » Elementor PHP

  • Gelöst wpapm

    (@wpapm)


    Hallo,

    via functions.php und my_elementor_php_output habe ich einen Shortcode erstellt. Nichts umwerfendes, eine Textdatei wird Zeilenweise eingelesen und durchmischt (Shuffle). Danach ein paar Zeilen in einem Div ausgegeben.

    Der Shortcode wird via Elementor eingebunden, die Ausgabe auf der Webseite ist auch genau so wie sie sein soll!

    Jetzt will ich aber die Seite im Backend bearbeiten, nicht mit Elementor. Ich gehe also auf Alle Seiten und wähle die Seite zum bearbeiten (z.B Seitentemplate ändern). Dann bin ich wohl im WordPresseditor?

    Jetzt zum Problem … die Seite wird zum bearbeiten aufgerufen und ich sehe ganz kurz die PHP-Ausgabe im Fenster und bin dann im Bearbeitungsfenster.

    Allerdings kann ich danach die rechte Bearbeitungsleiste nicht mehr vollständig nach unten scrollen und komme damit z.B nicht an die Einstellungen zur Übersetzung der Seite (WPML) ran. 🙁

    Jetzt frage ich mich an was das liegen könnte … natürlich an dem PHP-Code, denn entferne ich diesen von der Seite kann ich die Seite auch bearbeiten. Im Betrieb der Seite macht der Code allerdings keine Probleme!

    Hm? Wie könnte ich dem Problem auf die Spur kommen?

    MfG

Ansicht von 8 Antworten - 1 bis 8 (von insgesamt 8)
  • Deine Frage ist so kaum zu beantworten.

    Wir kennen den von dir erstellten Shortcode nicht und ich verstehe auch die Arbeitsschritte nicht. Wenn du in das Menü Seiten gehst, kannst du den Inhalt von Seiten bearbeiten, neue Seiten erstellen oder vorhandene Seiten löschen – aber keine Seitentemplates ändern.

    Wir wissen auch nicht, welches Theme und welche Plugins du verwendest, weil der Website-Bericht fehlt. Bitte lies dir dazu nochmal den angehefteten Beitrag Bevor du ein neues Thema (Thread) erstellst durch.

    Vorsorglich schon an dieser Stelle der freundliche Hinweis, dass wir dir zu gekauften Themes und Plugins wie z.B. Elementor Pro oder WPML nicht weiterhelfen können, weil sie uns für kostenlosen Support nicht zur Verfügung gestellt werden und wir auch nicht den Support für kommerzielle Anbieter übernehmen können.

    Vielleicht magst du mal den Code deiner PHP-Funktion teilen. Bei wenigen Zeilen gerne hier im Forum, bei längerem Code per GitHub Repository oder Pastebin.com.

    Bei reinen Programmierfragen bist du bei WordPress Stackexchange besser aufgehoben.

    Thread-Starter wpapm

    (@wpapm)

    Hallo Bego,

    Danke für deine Aufmerksamkeit!

    Inzwischen konnte ich das Problem eingrenzen. Am Code selber wird es nicht liegen, eher wie dieser eingebunden wird.

    Ich hatte diesen Beitrag gefunden, welcher es ermöglichen soll PHP als Shortcode im Elementor zu verwenden.

    Es funktioniert ja auch auf der Webseite. Nur … jetzt habe ich mir den Quellcode der Seite angesehen, also Alle Seiten und dann bei der Seite auf Bearbeiten gegangen … und da liegt der Hund begraben 😉 Das durch den Shortcode erzeugte DIV wird dort VOR dem Header ausgegeben! Was aber dann später auf der Seite nicht passiert. Passiert also nur wenn ich die Seite in WordPress bearbeiten will.

    Der Code ist einfach (functions.php)

    function apm_test_shortcode( $atts ) {
    
    $location_desc = file("/path_zu/test-daten.txt");
    shuffle($location_desc);
    
    $input = $location_desc;
    $rand_keys = array_rand($input, 20);
    
    echo "<div class='tagcloud'>";
    echo "<span class='tag10'>" . $input[$rand_keys[0]] . "&middot; </span>";
    echo "<span class='tag11'>" . $input[$rand_keys[1]] . "&middot; </span>";
    echo "<span class='tag12'>" . $input[$rand_keys[2]] . "&middot; </span>";
    echo "<span class='tag13'>" . $input[$rand_keys[3]] . "&middot; </span>";
    echo "<span class='tag14'>" . $input[$rand_keys[4]] . "&middot; </span>";
    echo "<span class='tag15'>" . $input[$rand_keys[5]] . "&middot; </span>";
    echo "<span class='tag16'>" . $input[$rand_keys[6]] . "&middot; </span>";
    echo "<span class='tag17'>" . $input[$rand_keys[7]] . "&middot; </span>";
    echo "<span class='tag18'>" . $input[$rand_keys[8]] . "&middot; </span>";
    echo "<span class='tag19'>" . $input[$rand_keys[9]] . "&middot; </span>";
    echo "<span class='tag20'> ... </span>";
    echo "</div>";
    
    }
    add_shortcode( 'my_elementor_php_output', 'apm_test_shortcode');

    test-daten.txt enthält je Zeile eine kurze Aussage wie z.B Alles bestens, oder Kommen immer gerne wieder u.s.w

    Die Liste wird durch Shuffle zufällig gemischt und damit wechseln die Begriffe bei der Ausgabe je Seitenaufruf.

    Ist ein älterer Code aus einer älteren PHP-Seite von mir der dort immer gut funktionierte.

    Ist der Shortcode via Elementor eingebunden wird er beim Aufruf der Seite auch ohne Probleme ausgeführt! Nur wenn ich die Seite dann in WordPress bearbeiten will kommt es zum Problem das die Ausgabe des Shortcodes vor dem <!DOCTYPE html> des Quelltextes steht und damit das Bearbeiten der Seite teilweise zerstört.

    Ich werde wohl nach einer anderen Lösung suchen müssen 😉 Es war auch nur ein Versuch, der auch auf Anhieb klappte, bis ich die Seite dann in WordPress (nicht Elementor) bearbeiten wollte.

    Zum Schluss noch eine Nachfrage … Meinen jetzt geschrieben Text kann ich nicht in einer Voransicht ansehen bevor ich diesen jetzt absende? Oder habe ich da etwas übersehen?

    Noch einen schönen Restfeiertag!

    MfG

    Thread-Starter wpapm

    (@wpapm)

    Hallo Bego,

    ich habe noch eine Staging-Seite in welcher ich Elementor deinstalliert hatte … um mich ein wenig mit Gutenberg zu beschäftigen 😉

    Dort habe ich eben auf die schnelle das Insert PHP Code Snippet installiert, passt zwar nicht zum aktuellen WP, aber zum testen schon 😉

    Passt! Damit gibt es keine Probleme!

    Ich liebäugele eh damit nur noch mit Gutenberg zu arbeiten und suche noch gerade meinen Weg 😉

    Denke das Problem ist erstmal für mich erledigt! Muss mich doch mal mehr mit Gutenberg beschäftigen!

    MfG

    Cool. Prima, dass du eine Lösung gefunden hast.

    Ich komme selber mit dem Block-Editor besser zurecht, aber Elementor hat natürlich auch viele Fans.

    Thread-Starter wpapm

    (@wpapm)

    Hallo Bego,

    ich muss ein paar positive Dinge über WordPress loswerden 😉 Es entwickelt sich bei mir wohl eine gewisse Sucht 😉 Vor allem aber … man lernt eine Menge dazu je mehr man sich damit beschäftigt!

    Der PHP-Code funktioniert jetzt ohne Elementor einwandfrei! Derzeit arbeite ich mit dem Theme Pages, welches mir viel Spielraum für die persönliche Gestaltung lässt. Genau das hatte ich gesucht.

    Falls du es noch nicht kennst, schau es dir mal an!

    Na dann … allen einen guten Rutsch ins neue Jahr und die besten Wünsche für 2023!

    MfG

    Thread-Starter wpapm

    (@wpapm)

    Hallo Bego,

    ich hatte ja Probleme PHP-Code in Elementor (hier) auszuführen, jetzt kann der PHP-Code auch in Elementor eingefügt werden und es kommt danach zu keinen Problemen mehr wenn man danach die Seite im WP-Editor bearbeiten muss.

    Die Lösung habe ich hier gefunden.

    Der Code kommt in die functions.php (Theme Child!) und im Elementor wird der PHP-Code in einem Text-Widget untergebracht.

    Mit freundlichen Grüßen

    Moderator Michi91

    (@michi91)

    Moin,
    Damit dein shortcode code technisch korrekt ist, musst du den kompletten Inhalt statt mit echo direkt auszugeben per return zurück geben. Dann wird er auch an der richtigen Stelle ausgegeben und erzeugt keine Fehler mehr in den diversen Editoren 🙂

    Thread-Starter wpapm

    (@wpapm)

    Moin Michi91,

    den Code hatte ich aus einer älteren statischen Seite von mir übernommen. Und er verursacht auch nur ausschließlich ein Problem wenn er über diesen Weg eingebunden wird.

    Danach wird der Code im Frontend richtig dargestellt. Im Backend gibt es jedoch ein Problem. Rufe ich dann die Seite zur Bearbeitung auf (nicht im Elementor!) um z.B der Seite einen neuen Slug zu verpassen (Auswahl in der rechten Seite) dann kann ich auf dieser Seite im rechten Bereich nicht mehr ganz nach unten scrollen um z.B die manuelle Übersetzung der Seite (WPML) anzuklicken.

    Das passiert bei den anderen Einbindungsmöglichkeiten und dem gleichen Code nicht! Zwischenlösung ist den Shortcode für die Bearbeitung via Elemetor zu entfernen, die Seite zu bearbeiten und danach den Shortcode wieder via Elementor einzufügen 😉

    Aber … wo müsste ich nachlesen um den Code wie von dir erwähnt „richtig“ auszugeben? Hast du da zufällig einen Link für mich? Auch wenn es jetzt mit einer anderen Lösung bei mir läuft würde ich mich trotzdem gerne damit beschäftigen.

    Mit freundlichen Grüßen

Ansicht von 8 Antworten - 1 bis 8 (von insgesamt 8)
  • Das Thema „Elementor PHP“ ist für neue Antworten geschlossen.