Frage

Ich habe eine Wordpress-Vorlage, die das folgende Element enthält:

<html xmlns="http://www.w3.org/1999/xhtml" <?php language_attributes('xhtml'); ?>>

Das gibt:

<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en-US" xml:lang="en-US">

Leider ist der „lang“ -Attribut ist ungültig XHTML 1.1 - und der Kunde würde diese Ebene der Validierung wie

.

Wordpress general-template.php-Datei enthält den folgenden Code:

if ( get_option('html_type') == 'text/html' || $doctype == 'html' )
    $attributes[] = "lang=\"$lang\"";

$doctype ist der Parameter an sie übergeben (in diesem Fall 'xhtml'). Sollte get_option einen anderen Wert als ‚text / html‘ zurückkehren? Wenn ja, was soll ich in Wordpress werde Einstellung dieses Ziel zu erreichen - wenn überhaupt

Ich habe auch versucht preg_replace mit dem „lang“ -Attribut zu nehmen, aber dies schien nicht in der Lage zu sein, den Text anzupassen. Wenn ich den Text manuell eingeben, passt es! Möglicherweise eine Codierung Problem mit der Zeichenfolge durch language_attributes zurückgegeben?

War es hilfreich?

Lösung

Ich löste dies. Es gibt einen „language_attributes“ Filter, so schrieb ich ein Plugin , die in die Haken und macht eine einfache preg_replace. Das funktionierte auszuwechseln, wenn hier durchgeführt wird, und es ist ein recht ordentlich, wie es zu behandeln.

Bearbeiten

Wie gewünscht, hier ist der Code, den ich verwendet:

<?php
/*
Plugin Name: Create Valid XHTML 1.1
Plugin URI: http://www.mycompany.com/create_valid_xhtml_1_1
Description: Removes deprecated "lang" attribute from (X)HTML header.
Author: dommer
Version: 1.0.0
Author URI: http://www.mycompany.com
*/

function create_valid_xhtml_1_1($language_attributes) 
{
    return preg_replace('/ lang=\"[a-z]+\-[A-Z]+\"/', '', $language_attributes);
}

add_filter('language_attributes', 'create_valid_xhtml_1_1');
?>

Andere Tipps

Wenn dies nur ein Thema auf Ihrer eigenen Website ist, können Sie header.php bearbeiten könnte und ändern Sie die

<html xmlns="http://www.w3.org/1999/xhtml" <?php language_attributes('xhtml'); ?>>

Linie fest einprogrammiert wird, verbessert die Leistung zu: -)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top