Como posso obter os language_attributes WordPress funcionar para retornar XHTML 1.1?
-
05-07-2019 - |
Pergunta
Eu tenho um modelo WordPress que contém o seguinte elemento:
<html xmlns="http://www.w3.org/1999/xhtml" <?php language_attributes('xhtml'); ?>>
Este retornos:
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en-US" xml:lang="en-US">
Infelizmente o atributo "lang" é XHTML inválido 1.1 -. E que o cliente gostaria que este nível de validação
file-template.php geral WordPress' contém o seguinte código:
if ( get_option('html_type') == 'text/html' || $doctype == 'html' )
$attributes[] = "lang=\"$lang\"";
$doctype
é o parâmetro passado para ele (neste caso 'xhtml'). Deve get_option
ser retornando um valor diferente de 'text / html'? Se assim for, o que devo ser a criação em WordPress para conseguir isso? - se alguma coisa
Eu também tentei usar preg_replace para tirar o atributo "lang", mas isso não parece ser capaz de igualar o texto. Se eu digitar o texto manualmente, ele corresponde! Possivelmente um problema codificação com a corda que está sendo retornado por language_attributes?
Solução
Eu resolvi isso. Há um "language_attributes" filtro, então eu escrevi um plug-in que ganchos para isso e faz um preg_replace simples. Substituir trabalhou quando realizada aqui, e é uma maneira muito elegante de lidar com isso.
Editar
Como pedido, aqui está o código que usei:
<?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');
?>
Outras dicas
Se este é apenas um tema em seu próprio site, você pode editar header.php e mudar o
<html xmlns="http://www.w3.org/1999/xhtml" <?php language_attributes('xhtml'); ?>>
linha a ser codificado, melhora o desempenho também: -)