Pregunta

Tengo una plantilla de WordPress que contiene el siguiente elemento:

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

Esto devuelve:

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

Desafortunadamente el " lang " El atributo no es válido XHTML 1.1, y al cliente le gustaría este nivel de validación.

El archivo

WordPress 'general-template.php contiene el siguiente código:

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

$doctype es el parámetro que se le pasa (en este caso, 'xhtml'). ¿Debería get_option devolver un valor que no sea 'text / html'? Si es así, ¿qué debo configurar en WordPress para lograr esto, en todo caso?

También intenté usar preg_replace para eliminar " lang " atributo, pero esto no parece ser capaz de coincidir con el texto. Si ingreso el texto manualmente, ¡coincide! ¿Posiblemente un problema de codificación con la cadena devuelta por language_attributes?

¿Fue útil?

Solución

Resolví esto. Hay un & Quot; language_attributes & Quot; filtro, así que escribí un plugin que se conecta a eso y realiza un simple preg_replace. El reemplazo funcionó cuando se realizó aquí, y es una forma bastante ordenada de manejarlo.

EDIT

Según lo solicitado, aquí está el código que utilicé:

<?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');
?>

Otros consejos

Si este es solo un tema en su propio sitio, puede editar header.php y cambiar el

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

línea a codificar, también mejora el rendimiento :-)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top