Javascript ist Toll!

15. June 2012 - 17:35

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

Comments (2)
1192 mal gelesen.

2 Kommentare

Leave a comment »

Seiten:

1. Comment von: Sami
25. July 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

2. Comment von: Struppi
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.

Leave a comment

Name (required)
Mail (wird nicht angezeigt) (required)
Website

Folgende HTML Tags sind erlaubt: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>



Powered by WordPress Stop Spam Harvesters, Join Project Honey Pot kostenloser Counter Browser-Statistiken
rats-wonderful
rats-wonderful
rats-wonderful
rats-wonderful