新的 WordPress 网页标题设置方法

就在刚刚,WordPress 推送了 4.4 正式版,可以在后台进行升级。对于主题开发者来说,需要注意的是:官方已经不再推荐使用 wp_title() 函数来添加网页标题,而是将网页标题变成了一个主题功能。
以前
以前,带有网页标题的 header.php 文件应该是类似这样的,在一对

<!DOCTYPE html> <html>     <head>         <title><?php wp_title( '|', true, 'right' ); ?></title>         <?php wp_head(); ?>     </head>

wp_title() 函数会根据条件标签函数判断当前的页面,生成并输出对应的网页标题。
但是,这种方法在 WordPress 4.4 之后已经不推荐继续使用。
新的标题设置方法
随着 wp_title() 的废弃,与之而来的是新方法。你可以在主题的 functions.php 文件中,添加下边的代码来添加网页标题。

/**     *新的 WordPress 网页标题设置方法     *http://www.endskin.com/new-document-title/ */ 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” 功能,也就是新增的网页标题标签功能。
加入这些代码之后,相当于告诉 WordPress 在 wp_head() 函数处输出一对

<!DOCTYPE html> <html>     <head>         <?php wp_head(); ?>     </head>

向下兼容
虽然 WordPress 到 4.4 版本才正式放弃 wp_title() 函数,但是新的标题添加方法早在 4.1 就已经添加到了核心代码中。也就是说,新的方法在 4.1 及其以上版本可以运行,但如果要兼容更老的版本,需要同时在 functions.php 中添加下边的代码。

/**     *兼容 WordPress 4.1 以下版本     *新的 WordPress 网页标题设置方法     *http://www.endskin.com/new-document-title/ */ 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 );

标题过滤器
随着新的方法,同时添加了一些新的过滤器钩子,可以让你控制网页标题的内容。
pre_get_document_title:可以让你完全控制标题内容,如果该过滤器不返回空,则会将返回值直接当做标题。
document_title_separator:新的标题分隔符是 “-”,你可以用这个过滤器来修改,比如改成之前的 “|”。
document_title_parts:自定义标题的各个组成部分,它们分别是:标题、页码、网站描述和网站名称。
pre_get_document_title
改过滤器可以完全自定义标题的内容,比如把所有页面的标题都改成 “Tech4”。

/**     *把所有页面的标题都改成 “Tech4”     *新的 WordPress 网页标题设置方法     *http://www.endskin.com/new-document-title/ */ function Bing_pre_get_document_title(){     return 'Tech4';//自定义标题内容 } add_filter( 'pre_get_document_title', 'Bing_pre_get_document_title' );

这样,每个网页的标题都会变成 “Tech4”。
或者,通过自定义字段的方式来让每篇文章自定义不同的标题。

/**     *每篇文章自定义不同的标题     *新的 WordPress 网页标题设置方法     *http://www.endskin.com/new-document-title/ */ 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” 自定义字段来设置网页标题,如果文章没添加自定义字段就会返回空,使用默认标题。
document_title_separator
用于修改标题每个项目之间的分隔符,比如修改成 “|”。

/**     *标题分隔符修改成 “|”     *新的 WordPress 网页标题设置方法     *http://www.endskin.com/new-document-title/ */ function Bing_title_separator_to_line(){     return '|';//自定义标题分隔符 } add_filter( 'document_title_separator', 'Bing_title_separator_to_line' );

之前,大多数人使用的标题分隔符都是 “|”,但现在默认变成了 “-”,会导致网站继续所有页面的标题发生变化,所以可以先改回来。
document_title_parts
这个过滤器会传给我们标题的各个部分,是一个数组,可以修改数组来自定义最终生成的标题。
例如,首页标题默认是 “网站名称 – 网站描述” 的形式,如果你不想要网站描述,可以删除数组中的 tagline。

/**     *首页标题不显示网站描述     *新的 WordPress 网页标题设置方法     *http://www.endskin.com/new-document-title/ */ function Bing_remove_tagline( $title ){     if( is_home() && isset( $title['tagline'] ) ) unset( $title['tagline'] );     return $title; } add_filter( 'document_title_parts', 'Bing_remove_tagline' );

版权免责声明

本资源仅用于个人学习测试使用,禁止用于任何商业环境,请于下载后24小时内删除本资源!

本文所有相关技术/资源内容统一放在下载包里

  1. 1、本网站名称:源码社
  2. 2、本站永久网址:https://www.nicedowns.com
  3. 3、站内所有资源均可通过日常签到等任务进行免费兑换,记得每日来本站签到哦~!。、
  4. 4、如果您觉得本站有帮助到您,也想给本站一些帮助。您可以再下方打赏本站。
  5. 5、本站资源来源于互联网收集/个人购买,如有侵犯到您的权益,请查看【版权声明】
  6. 6、本站提供的所有资源均来自互联网搜索,站内资源为网友个人学习或测试研究使用,未经原版权作者许可,禁止用于任何商业环境,任何人不得擅作它用,否则后果自负!请在下载24小时内删除!为尊重作者版权,请购买原版作品,支持你喜欢的作者,谢谢!
  7. 7、本站资源大多存储在云盘,如发现链接失效 【链接失效】 我们会第一时间更新。本站提供的源码、模板、软件工具等其他资源,都不包含技术服务 请大家谅解!

人已赞赏
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
有新消息 消息中心
搜索