PHPexec unter WP 2.2

  • Hallo!

    zur Zeit scheinen sich ja viele mit PHPexec zu beschäftigen...

    Mein Problem ist folgendes: Der PHP-Code wird von PHPexec v1.7 (mit 2.0 Fix) ordnungsgemäß ausgeführt, aber danach wird er durch wpautop() verändert, obwohl er eigentlich direkt ausgegeben werden sollte. Das scheint erst seit dem Update auf WP Version 2.2 der Fall zu sein.
    Bestaunen kann man das auf meiner Testseite. Der Quellcode oben erzeugt, warum auch immer das Ergebnis direkt drunter. An sich sieht das vielleicht gar nicht so schlimm aus, aber im Quelltext sieht man: da sind <p> und <br>-Elemente, die da nicht hingehören.

    Interessant ist, dass die Tagwolke funktioniert. Dabei wird sie genauso mit PHPexec generiert.

    Was kann ich hier tun? Nochmal irgendwo escapen?

    Danke für alle Ideen, ich versuch das schon den ganzen Tag und werd hier noch verrückt ;)

    mfg, Martok

    Einmal editiert, zuletzt von Martok (29. Juli 2007 um 21:54)

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Ich bin immer noch am Basteln, und habe nicht nicht wirklich Fortschritte gemacht.
    Dafür habe ich ein weiteres, zusammenhängendes Problem bemerkt. Folgender Quelltext:

    Code
    <span style="font-size:1.5em;">
    <blockquote>
    Ein Test-Zitat</blockquote>
    </span>

    wird von Wordpress umgeformt zu:

    Code
    <p><span style="font-size:1.5em;"></p>
    <blockquote><p>
    Ein Test-Zitat</p>
    </blockquote>
    <p></span></p>

    Es sind also auch hier überflüssige <p>-Elemente eingefügt worden. Das verwirrt mich nun aber noch mehr, denn eigentlich hätte das <blockquote>-Element doch genauso 'zerhackt' werden müssen, oder verstehe ich hier etwas falsch?

  • Das Problem liegt eindeutig in wpautop().
    Diese Funktion scheint ja darauf zu basieren, dass bestimmte Elemente von Hand ausgeschlossen werden. Daher funktioniert auch die Tagwolke, denn <li> ist eines dieser Elemente.
    PHPexec ist jedoch dazu da, Code selbst zu erzeugen, und hier kann ich das überhaupt nicht gebrauchen. Man müsste also irgendwie durch PHP erstellten Code kenntlich machen.
    Nun hab ich von Regex nicht die Ahnung dass ich das machen könnte.

    Hat irgendwer eine Idee, oder ein Plugin das funktioniert? Ohne diese Funktion habe ich ein ziemliches Problem...

    Martok

  • Ich rede mit mir selbst... naja, egal.

    So wie ich das jetzt sehe, müsste die wpautop() komplett neu geschrieben werden. Die aktuelle arbeitet mit explizit ausgeschlossenen Tags, was konzeptionell (jedenfalls für mich) nicht so schön ist.
    Ich versuche mal nen Rewrite, aber ich glaube kaum dass das was wird. Dafür reichen meine Kenntnisse einfach nicht aus.

    Martok

  • Juhuu!

    Na wenn das keine Eingebung war :mrgreen:

    Ich habe jetzt eine Lösung, die auf 2 kleinen Änderungen des Moduls wp-includes/formatting.php basiert. Ob es möglich wäre, dies über Filter zu realisieren, wage ich zu bezweifeln.

    Folgende Änderungen:

    Hinweis: die genauen Änderungen im Zusammenhang damit werde ich auf meinem Blog dokumentieren, da ich so nicht beide Orte aktuell halten muss.

    Damit brauche ich den betreffenden Code nur mit <nowpautop>...</nowpautop> zu umschließen und das Problem ist gelöst.
    Eventuell hat dies noch andere Auswirkungen, aber das muss sich erst im Praxisbetrieb zeigen.


    Trotzdem ist das explizite entfernen zuviel gesetzter Elemente in meinen Augen keine gute Idee. Eventuell sollte sich ein erfahrenerer Programmierer als ich das mal angucken.

    Was meint ihr?

    Martok

    Einmal editiert, zuletzt von Martok (26. Januar 2008 um 19:28)

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!