Javascript ist Toll!

15. Juni 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:

php
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:

php
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 wohl die Fehlerkonsole (z.b. im Firefox zu finden im Menü Extras). Mit ihr lassen sich leicht Fehler in Skripte finden und ist daher bei mir meistens...

  • 2. Februar 2008 -- Wordpress und Javascript (3)

    Nachtrag: 11.11.2009 Das meiste was in dem Artikel steht, scheint für die Version 2.8.x hinfällig zu sein. Die Funktion wptexturize() hat endlich einen Trigger auf das Code-Tag und vermurkst nicht...

  • 3. Februar 2014 -- Wordpress verbindet sich ungefragt mit google.com (3)

    Ich teste gerade lokal eine neuere Version (3.8.1) von Wordpress und als ich in das Netzwerkpanel schaue, sehe ich das Wordpress sich bei jedem Aufruf mit fonts.googleais.com verbindet. Egal ob im Backend...

Comments (2)
1459 mal gelesen.
flattr

2 Kommentare

Hinterlasse einen Kommentar »

Seiten:

1. Kommentar von: Sami
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

2. Kommentar 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.

Hinterlasse einen Kommentar

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

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



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