21. Mai 2009 von Dieter | 22 Kommentare | drucken
WordPress für angemeldete Nutzer valide machen
WordPress gibt standardmäßig validen XHTML-Code aus.
Das ändert sich aber leider, wenn Du eingeloggt bist. Dann gibt es bei allen Seiten mit dem Kommentarfeld folgende Warnung durch Validatoren:
1 | ID "_wp_unfiltered_html_comment" uses XML ID syntax |
Damit ein ID Attribut konform mit der Spezifikation für (X)HTML-Dokumente ist, muss die ID
- mit einem Buchstaben beginnen und
- darf nur Buchstaben, Ziffern, Bindestriche, Unterstriche, Doppelpunkte und Punkte enthalten.
Diese Warnung ist ärgerlich, zumal ich diese durch HTML-Tidy, einem Addon für den Browser Firefox automatisch angezeigt bekomme und dann häufig vorsichtshalber kontrolliere, ob nicht vielleicht noch weitere Warnungen existieren.
Durch Zufall bin ich heute im Forum von WordPress Deutschland auf die Lösung gestoßen, wie diese Warnung behoben werden kann.
In der comments.php des aktiven Themes musst Du direkt vor
1 | <?php do_action('comment_form', $post->ID); ?> |
folgende Codezeile einfügen oder in die functions.php des Themes kopieren:
1 | <?php remove_action('comment_form', 'wp_comment_form_unfiltered_html_nonce'); ?> |
Bei mir hat es funktioniert und nun wird mir mein WordPress-Blog (Frontend) auch valide gezeigt, wenn ich eingeloggt bin.
Bleibt jetzt nur noch zu hoffen, dass
- möglichst viele Theme-Autoren ihre WordPress-Themes möglichst bald entsprechend ergänzen und
- die Validierungsprobleme im Administrationsbereich (Backend) von WordPress möglichst bald von den Entwicklern behoben werden.
Infos
Webseite veröffentlicht am Donnerstag, den 21. Mai 2009, um 23:24 Uhr, zuletzt geändert am Donnerstag, den 27. Mai 2010, um 21:26 Uhr.
Kategorie: WordPress
Schlagworte: comments.php, ID, Themes, Valider Code, WordPress, XHTML
Statistik: 250 Blogbeiträge, 670 Schlagworte, 1,179 Kommentare, 122 Feedleser
1. Kretzschmar
Kommentar vom 31. Mai 2009 um 10:14
Warum nur halten so viele User stur an einer 100-prozentigen Gültigkeit fest. Sehr häufig gibt es gute Gründe, davon abzurücken.
Da der “Fehler” nicht im Template erzeugt wird, sondern das _noonce-Feld von WordPress automatisch erzeugt wird, sollten Theme-Autoren auf gar keinen Fall diesen Filter einfach entfernen. Wenn es sich tatsächlich um einen “Fehler” handelt, muss dieser (und wird) in WordPress selbst beseitigt werden – einfach mal ein Ticket im Trac schreiben.
2. Dieter
Kommentar vom 31. Mai 2009 um 10:45
Weil validierender (X)HTML-Code ein Qualitätsmerkmal für eine gute Webpräsenz ist?
Diese Gründe kenne ich nicht. Wäre nett, wenn Du da Beispiele anführen könntest.
Beispielsweise zeigt mir auf Deiner Website die Startseite 20 Validierungsfehler an.
Unter anderem bei den Videos sind die meines Erachtens überflüssig. Ich binde zwar hier die Videos mit Quelltext ein, aber das WordPress-Plugin Smart Youtube sollte das inzwischen auch können.
3. Dieter
Kommentar vom 31. Mai 2009 um 18:35
Für was ist denn der Code gut, der die Validität beeinträchtigt, wenn man eingeloggt ist?
Ich habe durch meinen Ergänzungsvorschlag bisher keine negative Nebenwirkungen feststellen können. Du?
Gerne korrigiere ich diesen Blogbeitrag, wenn Du oder ein anderer Besucher mir eine überzeugende Begründung lieferst.
Zum einem fehlen mir leider noch die notwendigen PHP-Kenntnisse um die programmtechnische Ursache des Problems beschreiben zu können.
Zum anderen scheinen die Programmierer von WordPress manchmal seltsame Vorstellungen bezüglich des Lösens von gemeldeten Fehlern im Trace zu haben (siehe bspw. Ticket #8665 und den heutigen Nachtrag in meinem Blogbeitrag “Pingback-Problem bei WordPress 2.7 beheben“).
4. alte Kiehvotz
Kommentar vom 7. Juli 2009 um 18:16
Aber welchen Sinn macht es, das “Backend” (also die Seite im eingeloggten Zustand) valide zu machen?
Auf diesen Seiten kommen doch die Suchmaschinenbots eh nicht, um dort evtl. irgendwelche Fehler zu bemängeln. Und solange die Seite nicht vollkommen defaced (entstellt oder falsch angezeigt) wird, wäre doch eigentlich alles in Butter.
5. Dieter
Kommentar vom 7. Juli 2009 um 20:14
@alte Kiehvotz
Zum einem ist valider Code ein Qualitätsmerkmal, das nicht nur für Suchmaschinenbots von Vorteil ist, sondern auch die Risiken von Fehldarstellungen in dem einem oder anderen Browser reduzieren hilft.
Zum anderen gibt es WordPress-Installationen, bei denen mehr als nur ein Administrator Zugriff auf das Backend hat. So kann es beispielsweise ein Autorenteam geben usw.
Es ist einfach ein Zeichen für eine guten Code- und Programmierqualität, wenn möglichst alle Seiten validieren.
6. alte Kiehvotz
Kommentar vom 9. Juli 2009 um 20:35
Naja, aber gerade bei solch einem “kleinen Fehler” ist wohl kaum die richtige Darstellung gefährdet.
Wäre mein Blog im normalen Zustand nicht valide, würde mich das vielleicht auch stören, aber bei solch einer Situation wäre mir der Fehler wohl egal.
7. Dieter
Kommentar vom 9. Juli 2009 um 21:22
@alte Kiehvotz
Bei dem in dem Blogbeitrag genannten “kleinen Fehler” ist in der Tat die richtige Darstellung nicht gefährdet, zumal diesen nur angemeldete Blogbenutzer erleben.
Wie ich in dem Blogbeitrag geschrieben habe, liegt für mich das Problem als angemeldeter Blogbetreiber in der Überprüfung der Validität der Seiten. Ich zitiere:
8. Gabi
Kommentar vom 12. Juli 2009 um 19:35
Hallo Dieter,
Tausend Dank für diesen Tipp
diese Fehlermeldung ärgert mich schon ewig.
Vielleicht beschäftigt sich das Entwicklerteam auch irgendwann nochmal mit der unglücklichen style-Einbettung in der media.php für die WordPress-Galerie. Da ich die Galerie gern benutze, muss ich da immer von Hand bei
9. Dieter
Kommentar vom 12. Juli 2009 um 19:57
@Gabi
Freut mich, dass der Tipp für Dich hilfreich war.
Die WordPress-Galerie habe ich bisher noch nicht benutzt, aber was Du da bzgl. unglücklicher style-Einbettung schreibst klingt nicht gut. Vielleicht hilft ein entsprechendes Ticket beim WordPress-Trac.
PS: Dein Blog gefällt mir. Schön, dass Du die Seiten valide hältst.
10. Marco
Pingback vom 22. Juli 2009 um 22:54
[...] wer von nun ab sorgenfrei ist, kann sich Gedanken dazu machen, wie man WordPress im Admin-Modus XHTML-konform bekommt oder in einem der 160 coolen WordPress Hacks [...]
11. Micha
Kommentar vom 8. November 2009 um 17:32
Ok, mal etwas zur Klärung.
wp_comment_form_unfiltered_html_nonce berechtigt den Administrator ungefilterte Kommentare abzugeben, zB Codeschnipsel usw.
Hier muss ich Kretschmar ausdrücklich Recht geben, eine Entfernung durch den Themeautor wäre nicht gerechtfertigt, da er damit die Administratorrechte beschneiden würde.
12. Dieter
Kommentar vom 8. November 2009 um 17:51
@Micha
Ich habe bisher nichts von einer Beschneidung meiner Rechte als Administrator beim Kommentieren bemerkt. So funktioniert hier das Kommentieren mit Codeschnipsel als Administrator bisher ohne Probleme.
Meine bevorzugte Lösung ist, dass die Entwickler von WordPress die Validierungswarnung beseitigen. Dann bräuchte auch nicht der Themeautor oder gar der WordPress-Nutzer sich des Validierungsproblems anzunehmen.
13. Micha
Kommentar vom 8. November 2009 um 21:53
Dieter, ich gebe Dir Recht, dass die Entwickler solche Fehler beseitigen müssen. Aber die haben noch ganz andere Baustellen, siehe mein Beitrag bezüglich der Gallery Funktion.
14. Dieter
Kommentar vom 8. November 2009 um 22:16
@Micha
So eine umfangreiche Anwendung wie WordPress deckt viele Bedürfnisse ab.
Die Folge ist wie bei umfangreicher Software:
Der Durchschnittsanwender nutzt nur noch einen Bruchteil der Funktionalitäten.
Viele achten nicht auf die Validität ihrer Seite und kontrollieren sie auch nicht.
Ich habe beispielsweise noch nie die Galerie-Funktion von WordPress genutzt.
Wenn ich mal eine Fotogalerie mit WordPress realisieren wollte, hätte ich als erstes an das Plugin NextGEN Gallery von Alex Rabe gedacht.
Auch wenn ich derzeit keine WordPress-Galerie brauche, sage ich schon mal danke für Deine Lösung der WordPress Galerie. Im Bedarfsfalle werde ich sie jedenfalls ausprobieren.
15. Ralf
Kommentar vom 30. November 2009 um 15:04
Vielen Dank für die nützliche Info bzgl. WordPress — Ich bin gerade dabei eine neue Seite aufzubauen und dafür sind derartige Ratschläge sehr nützlich für mich! Vielen Dank nochmals!
16. Dieter
Kommentar vom 30. November 2009 um 16:14
Bitte schön! Gern geschehen!
17. Sebastian
Kommentar vom 28. Dezember 2009 um 14:10
Hallo,
bin durch Google auf euren Beitrag gestoßen, da ich auch die o.g Probleme habe.
Der Fehler stört mich auch schon Asbach lange, nun konnte ich an Hand eures Artikels schon mal ein paar Tipps erhalten…
Ich hoffe, dass das WordPress-Team zukünftig, wie schon Gabi erwähnte, sich mit der Galerie beschäftigt, da die manuelle Arbeit viel Zeit in Anspruch nimmt!
Super Artikel, vielen Dank an dich Dieter, ich werde diese Seite bookmarken, in der Hoffnung weitere gute Informationen zu finden.
Gruß
18. Dieter
Kommentar vom 28. Dezember 2009 um 17:03
@Sebastian
Danke für Deinen Kommentar.
Ich hoffe, dass Du hier auch noch weitere gute Informationen zu WordPress und allgemein zum Erstellen, Planen, Pflegen und Beenden von Webseiten findest.
19. Name-gelöscht
Kommentar vom 15. Februar 2010 um 19:29
Danke für den Hinweis. Hat mir sehr geholfen.
Und bitte wer stellt da in Frage, dass es nicht notwendig ist einen validen Code zu haben?? Tzz … schämt euch^^
20. Dieter
Kommentar vom 15. Februar 2010 um 19:49
Gern geschehen!
Aber schämen muss sich hier niemand, da lediglich die Vor- und Nachteile meines Vorschlags diskutiert werden.
21. Robert
Kommentar vom 23. April 2010 um 17:04
Endlich! Wie lange hab ich schon danach gesucht, teilweise kommentiere ich schon die do_action-Zeile bei der Entwicklung aus. Ich denke, dass viele Entwickler, Themer, Coder usw. das Validator-Symbol als Schnellcheck nutzen, ob noch “alles in Ordnung” ist. Springt nach dem Reload das Symbol auf das gelbe Warnschild, weiß ich sofort, ich habe bei der letzten Änderung irgendwas vergessen. Also die perfekte Schnellanzeige.
Typischerweise ist man dabei angemeldet, so dass bei jeder Seite mit Kommentarfeld wegen dieses blöden Tags diese Möglichkeit abhanden ging.
22. Dieter
Kommentar vom 23. April 2010 um 20:57
@Robert
Ja, genau dieser Schnellcheck mit dem Validator-Symbol ist für mich der Auslöser gewesen, diese Lösung einzubauen und darüber zu bloggen.