Wordpress4.4新版网页Title的设置方法
Wordpress官方在12月8日更新了4.4版本,余斗发现一个很大的变化就是,官方已经不再推荐使用wp_title()函数来获取网页标题,而是把网页标题变成一个主题功能!
以前,我们在worpress中获取网页标题是在header.php文件中加wp_title()函数来获取title,余斗也出过教程《WordPress头部文件中title标签通用代码》和《Wordpress去Title标题中空格的方法》来讲解关于获取<title>的时候的一些细节问题。主要的核心代码为:
<head>
<title><?php wp_title( '|', true, 'right' ); ?></title>
<?php wp_head(); ?>
</head>
wp_title() 函数会根据条件标签函数判断当前的页面,生成并输出对应的网页标题。
这次Wordpress更新之后,我么就要摒弃使用wp_title()函数,新的标题设置方法为:
在主题文件的functions.php中添加以下函数:
/**
*新的 WordPress 网页标题设置方法
*/
function Bing_add_theme_support_title(){
add_theme_support( 'title-tag' );
}
add_action( 'after_setup_theme', 'Bing_add_theme_support_title' );
这段代码中,用add_theme_support()函数添加了"title-tag"功能,这就是新增的网页标题标签代码。加了这段函数后,就能在wp_head()函数输出一对<title>标签并包括当前的页面标题信息。
这样,我们就不需要加再添加<title>和wp_title()函数了,只需要用wp_head()就能输出title。
<head>
<?php wp_head(); ?>
</head>
其中,4.1以后的版本是兼容这个变动的,如果要在4.1以前的版本使用这个方法,还要在主题的functions.php中添加以下函数:
/**
*兼容 WordPress 4.1 以下版本
*新的 WordPress 网页标题设置方法
*/
function Bing_compat_render_title_tag(){
if( !function_exists( '_wp_render_title_tag' ) ) echo '<title>' . wp_title( '|', false, 'right' ) . '</title>';
}
add_action( 'wp_head', 'Bing_compat_render_title_tag', 1 );
扩展功能
如果要实现title的一些变动,这次Wordpress更新还添加了一些新的hook,让我们方便的控制网页标题的内容。
document_title_separator
这个函数用来修改title中的连接符,默认的连接符为"-",比如我们想要改为"|"。
/**
*标题分隔符修改成 “|”
*新的 WordPress 网页标题设置方法
*/
function Bing_title_separator_to_line(){
return '|';//自定义标题分隔符
}
add_filter( 'document_title_separator', 'Bing_title_separator_to_line' );
document_title_parts
这个过滤器会传给我们标题的各个部分,是一个数组,可以修改数组来自定义最终生成的标题。
例如,首页标题默认是 “网站名称 - 网站描述” 的形式,如果你不想要网站描述,可以删除数组中的 tagline。
/**
*首页标题不显示网站描述
*新的 WordPress 网页标题设置方法
*/
function Bing_remove_tagline( $title ){
if( is_home() && isset( $title['tagline'] ) ) unset( $title['tagline'] );
return $title;
}
add_filter( 'document_title_parts', 'Bing_remove_tagline' );
pre_get_document_title
可以完全自定义标题内容,比如我们把所有页面的标题都变为"余斗余斗"。
/**
*把所有页面的标题都改成 “余斗余斗”
*新的 WordPress 网页标题设置方法
*/
function Bing_pre_get_document_title(){
return '余斗余斗';//自定义标题内容
}
add_filter( 'pre_get_document_title', 'Bing_pre_get_document_title' );
还能通过自定义字段的方式来定义不同文章的标题。
/**
*每篇文章自定义不同的标题
*新的 WordPress 网页标题设置方法
*/
function Bing_custom_post_document_title( $pre ){
if( is_singular() && $custom = get_post_meta( get_the_ID(), 'custom_document_title', true ) ) $pre = $custom;
return $pre;
}
add_filter( 'pre_get_document_title', 'Bing_custom_post_document_title' );
添加这段函数后,任何文章页都可以通过" custom_document_title"自定义字段来设置网页标题,如果有自定义的title就会添加设置的这个title,如果没有设置,就返回空值,使用默认title。
相关文章
- 表单生成插件 Ninja Forms 严重漏洞,WordPress 官方强制推送更新
- WordPress 官方要求主题作者切换到本地托管字体
- 如何限制或取消wordpress自动清空回收站功能
- 一键将织梦(DedeCMS)文章数据无损迁移到WordPress系统
- WordPress 主循环和全局变量
- WordPress 6.0 扩展修改内容中图片标签的能力
- WordPress刚安装后报502以及后台报502的解决方法
- WordPress 修改后台登入网址,提升安全性? (WPS Hide Login 教学)
- wordpress 表格插件-wordpress插件大全「只需要输入域名建站」
- 移除 WordPress 5.9 登录页面中的语言切换框