在编写主题时,我确保它符合XHTML 1.1和CSS 2.1。然后我添加了插件,主题不再符合XHTMl 1.1。然后我在CSS中使用了Google API字体,它更符合CSS 2.1。
有没有一种方法可以在不删除插件、字体等的情况下保持法规遵从性,还是应该忽略验证错误?
在编写主题时,我确保它符合XHTML 1.1和CSS 2.1。然后我添加了插件,主题不再符合XHTMl 1.1。然后我在CSS中使用了Google API字体,它更符合CSS 2.1。
有没有一种方法可以在不删除插件、字体等的情况下保持法规遵从性,还是应该忽略验证错误?
更正,您的主题仍然符合XHTML 1.1和CSS 2.1,但您添加的插件注入了其他不符合的代码。
不幸的是,如果您使用的是插件,则没有简单的方法来维护法规遵从性。您所能做的最好的事情就是验证您的主题和您个人负责的所有标记,然后希望其他开发人员已经花时间验证他们自己的工作。
另一种选择是您需要做更多的工作-您仍然可以使用插件的核心功能,但不允许它们输出any 标记到浏览器。添加您自己的自定义层,该层可以解除插件所涉及的所有内容,并构建您自己的输出缓冲区。这是唯一一种可以控制发送到浏览器的标记样式的方法。
一些插件开始使用HTML 5。。。其他人正在尝试使用CSS3。如果您安装了这些插件,并且没有采取步骤对其输出进行清理和验证,那么您的站点将停止正确验证。
每个插件都将生成它想要生成的代码,其中一些插件将不符合XHTML 1.1。唯一合理的纠正方法是对每一个进行审核,要么修改违规者,要么让开发人员修改或将您的修改作为补丁使用。
或者,您可以尝试编写一个过滤器来清理它,但尝试捕获所有特殊情况似乎是我个人噩梦的一个版本,这也会影响性能,带来双重好处。
您是否有客户/老板想要这样做,或者这只是一种“很高兴拥有”的假设(是的,有些人对此有强烈的感受。但我不是其中之一。)
也就是说,XHTML正在失去其在web上的“金发孩子”地位;即使Tim Berners-Lee said so 早在2006年:
经过几年的事后观察,有些事情更清楚了。有必要逐步发展HTML。试图让世界立即切换到XML,包括在属性值周围加引号以及在空标记和名称空间中加斜杠,但都没有成功。生成HTML的大用户没有移动,主要是因为浏览器没有抱怨。一些大型社区确实发生了变化,正在享受良好制度的成果,但并非所有社区都如此。以增量方式维护HTML,继续向格式良好的世界过渡,并在这个世界上开发更多功能,这一点很重要。
您可能还想阅读HTML5 is so much easier to write than XHTML 1.0. 在StackOverflow上结束。以下是他们的总结:
就语法而言,当您使用HTML5时,您最终会得到更清晰、更易于阅读的标记,这些标记总是调用标准模式。当您使用XHTML 1.0(用作文本/html)时,您指定了一组crud(以便针对蹩脚的dtd进行验证),浏览器将自动执行这些操作。
您可以缓冲站点的整个输出,然后将其整理成兼容的HTML。最好的是,这可以完全自动化完成:
整洁实用程序:http://tidy.sourceforge.net/
下面是两段代码。第一个显示您开始输出缓冲并稍后读取缓冲:
<?php
ob_start();
?>
…
<?php
$buffer = ob_get_clean();
$tidy = tidy_repair_string($buffer);
echo $tidy;
?>
第二个显示了一些正在运行的配置选项:/* Tiny Configuration */
$config["clean"] = true;
$config["hide-comments"] = true;
$config["output-xhtml"] = true;
$config["indent-spaces"] = 2;
$config["tab-size"] = 2;
$config["wrap"] = 0;
$buffer = ob_get_clean();
$tidy = tidy_repair_string($buffer, $config);
echo $tidy;
我打赌已经有一个wordpress插件可以这样做。让我们看看:我对插件创作还很陌生,调试也很困难。我用了很多echo,它又脏又丑。我确信有更好的方法可以做到这一点,也许是一个带有调试器的IDE,我可以在其中运行整个站点,包括插件?