最近在帮助一个客户处理问题的时候发现一个小问题,他想实现wordpress网站标题的自定义,包括文章列表分页也实现不同页面不同显示。这个需求需要通过标题自定义的代码进行修改实现。
然而我们在处理这个问题的时候发现,他所使用的这个主题在头部中并没有常规的<title></title>,有的只是一个wp_head()函数,当顺着这个函数搜索查找发现,其实这是因为wordpress4.4版本中做的一个更新导致的。
wordpress4.4版本之前标题调用方式:
- <head>
- <title><?php wp_title( '|', true, 'rightright' ); ?></title>
- <?php wp_head(); ?>
- </head>
wordpress更新后版本标题实现方式:
1、在主题文件的functions.php中添加以下函数:
- function add_theme_support_title(){
- add_theme_support( 'title-tag' );
- }
- add_action( 'after_setup_theme', 'add_theme_support_title' );
2、然后在主题头部文件header.php中添加wordpress的hook函数:
- <head>
- <?php wp_head(); ?>
- </head>
通过以上方式就可以在wordpress各网页中添加一个title的标签了,首页标题格式显示为:站点标题 – 网站描述(备注:副标题),文章页面显示为:当前页面标题 – 站点标题,如这篇文章默认的显示为:更新的wordpress页面标题调用方式 – 学建站网。
新的标题实现方式是通过wordpress默认文件实现的标题展现,然而如果在wordpress4.1之前的一些版本,这种方式的标题展示并不适用,关于wordpress的版本更新,确保wordpress版本最新,这样可以有效保证网站安全。不过你还是喜欢使用之前的一些老掉牙的本版本,也可以在函数文件functions.php文件中添加一个向下兼容的代码:
- # Titles for WordPress before 4.1
- if ( ! function_exists( '_wp_render_title_tag' ) ) :
- function tie_slug_render_title() {
- ?>
- <title><?php wp_title( '|', true, 'right' ); ?></title>
- <?php
- }
- add_action( 'wp_head', 'tie_slug_render_title' );
- endif;
这种新的标题实现方式还为我们提供了一些自定义标题的hook信息:
- pre_get_document_title:可以让你完全控制标题内容,如果该过滤器不返回空,则会将返回值直接当做标题。
- document_title_separator:新的标题分隔符是 “-”,你可以用这个过滤器来修改,比如改成之前的 “|”。
- document_title_parts:自定义标题的各个组成部分,它们分别是:标题、页码、网站描述和网站名称。
例如我们想让首页只显为站点标题,我就可以使用新的hook信息document_title_parts在函数文件中添加如下代码:
- function wpt_remove_tagline( $title ){
- if( is_home() && isset( $title['tagline'] ) ) unset( $title['tagline'] );
- return $title;
- }
- add_filter( 'document_title_parts', 'wpt_remove_tagline' );
而如果我们同时也想让我们分类的每个分页页面标题也显示的不同,也可以通过添加如下代码实现:
-
-
-
-
- function wpt_remove_tagline( $title ){
- if( is_home() && isset( $title['tagline'] ) ) unset( $title['tagline'] );
- return $title;
- if( is_category() );
- return single_cat_title(); $paged = get_query_var('paged'); if ($paged > 1 ) printf(' - 第 %s 页 ',$paged); echo " - "; bloginfo('name');
- }
- add_filter( 'document_title_parts', 'wpt_remove_tagline' );
温馨提示:本文最后更新于2019年3月19日,已超过 2 年没有更新,如果文章内容或图片资源失效,请留言反馈,模板下载吧会及时处理,谢谢!