WordPress und Javascript
In der letzten Zeit durfte ich mich etwas intensiver mit WordPress beschäftigen und bin dabei einer Lösung eines alten Problems auf die Spur gekommen.
Seit anbeginn hat mich WordPress hier im Blog genervt, weil es Javascript Code der innerhalb von Artikeltext eingebaut ist, mit internen Funktionen vor der Ausgabe so verändert, dass er nicht mehr lauffähig ist. Ich hatte schon 2008 darüber gebloggt und konnte zwischenzeitlich zumindest den Aufwand bei Updates deutlich verringern
Das Problem war, dass eine Funktion mit den Namen convert_chars()
doppelte && Zeichen umwandelt. Da diese in JS das logische-Und sind funktioniert Javascript Code nicht mehr. Denn diese Funktion wird auf jeden Artikel Text angewandt. So wurde bei in Artikel eingebetteten Javascript Quellcode aus &&
immer && und folglich für den Browser fehlerhaft. Bisher habe ich bei jedem update die Funktion im Code von WordPress geändert. Was lästig ist.
Dabei wäre das Problem einfach zu lösen gewesen nur ich wußte bisher nicht wie. Im Template Verzeichnis kann in der Datei functions.php
Einfluss auf das Verhalten von WordPress ausgeübt werden. Unter anderem können bestimmte Events verhindern werden. Um zu verhindern, dass z.b. die oben gennante Funktion aufgerufen wird, muss lediglich folgende Zeile in die Datei eingefügt werden:
remove_action('the_content', 'convert_chars'); |
Und auch das Plugin Text Control, das ich bisher benutzt habe, läßt sich komplett einsparen, mit den folgenden drei Zeilen:
remove_action('the_content', 'convert_chars'); remove_action('the_content', 'wptexturize'); remove_action('the_content', 'wpautop'); |
Schon kann problemlos auch JS Code in die Artikel eingefügt werden.
ähnliche Artikel
- 6. November 2010 -- Mach deine Fehlerkonsole sauber! (8)
Alle, die sich mit Javascript beschäftigten, kennen...
- 2. Februar 2008 -- Wordpress und Javascript (3)
Nachtrag: 11.11.2009 Das meiste was in dem Artikel...
- 28. November 2024 -- Animierte Tabellen Sortierung (9)
Aufgrund einer Frage bei meinem alten Tabellensortierer-Skript...
3642 mal gelesen.
2 Kommentare
direkt zum Formular »
Seiten:
25. Juli 2012: 15:33
Hallo :-)
Trotz dieser Möglichkeit halte ich es überhaupt nicht für sinnvoll dem Nutzer zu ermöglichen JS-Code in Artikeln und Seiten einzufügen. Alles was man in WordPress an JS baut sollte im Template verankert sein, da Code an einer solchen Stelle auch nicht wirklich nachvollzogen und sauber weiterbearbeitet werden kann; zumindest würde es einem Konzept vernünftiger Codetrennung sehr widersprechen – nichtsdestotrotz ist es sicherlich bequem…
Aber mir bereitet es doch immer etwas Bauchschmerzen, wenn Entwickler auf Grund eines solchen Eintrages anfangen es zu ihrer Hauptpraxis zu machen, immerhin landen sicher auch welche hier, die noch keine Ahnung von WP haben und gerade erst ihren Umgang damit lernen und dabei empfinde ich das hier als absolute Fehlleitung, daher würde ich vorschlagen einen Hinweis auf vernünftiges „Templating“ einzufügen, um ebensolche Nutzer darauf aufmerksam zu machen, dass das hier nicht die generelle Praxis ist.
Unabhängig davon gibt es einige schöne Skripte hier auf der Seite.
LG,
Sami
6. September 2012: 13:46
Naja, du bist hier in einem Blog über Javascript. Das heißt ich möchte JS Code in meinen Posts schreiben der funktioniert und genau das ist das Problem. Ohne die gezeigten Änderungen kann man kein Beispielcode in Postings schreiben, der dann ausgeführt wird.
Du hast aber recht, dass das keine allgemeingültige Praxis sein sollte.