HTML的lang属性可用于声明网页或部分网页的语言,这对搜索引擎和浏览器是有帮助的。在wordpress中,经常可以在主题header.php文件中看到这样的语句:
<html <?php language_attributes(); ?>>
在实际展现的页面当中,我们会看到类似这样的效果:
<html lang="zh-CN">
language_attributes的源码
这个language_attributes的构成也是相当简单粗暴:
function language_attributes( $doctype = 'html' ) {
echo get_language_attributes( $doctype );
}
仔细想想,wordpress函数的命名规范也不是那么难于记忆,直接输出的语句一般没有get,而需要获取返回值的时候,在函数前面加一个“get_”前缀往往能收获惊喜。
get_language_attributes的源码与返回值
通过源码可以看到,该函数调用了“get_bloginfo()”这个函数,对返回值重新进行了组装:
function get_language_attributes( $doctype = 'html' ) {
$attributes = array();
if ( function_exists( 'is_rtl' ) && is_rtl() ) {
$attributes[] = 'dir="rtl"';
}
$lang = get_bloginfo( 'language' );
if ( $lang ) {
if ( 'text/html' === get_option( 'html_type' ) || 'html' === $doctype ) {
$attributes[] = 'lang="' . esc_attr( $lang ) . '"';
}
if ( 'text/html' !== get_option( 'html_type' ) || 'xhtml' === $doctype ) {
$attributes[] = 'xml:lang="' . esc_attr( $lang ) . '"';
}
}
$output = implode( ' ', $attributes );
/**
* Filters the language attributes for display in the 'html' tag.
*
* @since 2.5.0
* @since 4.3.0 Added the `$doctype` parameter.
*
* @param string $output A space-separated list of language attributes.
* @param string $doctype The type of HTML document (xhtml|html).
*/
return apply_filters( 'language_attributes', $output, $doctype );
}
因为博主的博客语言设置为中文,所以该函数最后返回了这样一条结果:
lang="zh-CN"