炫意html5
最早CSS3和HTML5移动技术网站之一

WordPress通过functions.php修改meta title样式

WordPress默认的标题是这样的:

  • 首页:副标题 | 博客名称
  • 其他:标题 | 博客名称

但是个人并不太喜欢这样的样式,想换成:

  • 首页:博客名称 – 副标题
  • 其他:标题 – 博客名称

也就是说,首页 title 的副标题和博客名称调换,而且所有 title 的分隔符都由竖线“|”改成减号“-”。

如果你的主题里面已经定义好了 <titile></title>标签,那就很好办,直接修改主题中的顶部文件 header.php 文件。但是我的主题没有自己做<title>,直接引用了 wp_head() ,所以无法修改 header.php 实现。

于是乎寻思着,functions.php 文件不是可以实现自定义的功能嘛?查询了很多博主的博客后,终于把问题解决了,只需在functions.php 加入如下代码:

function new_title($title) {
    if (is_front_page()) {
        $title = get_bloginfo('name') . ' - ' . get_bloginfo('description');
    } else {
        $title .= get_bloginfo('name');
    }
    return $title;
}
add_filter('wp_title', 'new_title');

代码很简单,不解释了。如果需要更加复杂的,比如分类后面加上“分类”关键词,标签后面加上“标签”关键词,可以用下面的过滤函数:

function new_title( $title, $sep, $seplocation ) {
$paged = get_query_var('paged');
$blog_name = get_bloginfo('name');
$site_description = get_bloginfo('description');
// 判断是否为首页
if ($site_description && (is_front_page() || is_home())) {
$title = "$blog_name $sep $site_description";
} else {
if (is_category()) {$type = ' 分类'; }
elseif (is_tag()) { $type = ' 标签'; }
elseif(is_author()) { $type = ' 的文章'; }
elseif(is_date() || is_archive()) { $type = ' 存档'; }
else $type = '';
// 添加页码
if ($paged > 1) {
$page_num = ' 第' . $paged . '页';
}
// 清除空格和分隔符
$title = trim( str_replace( $sep, '', $title ) );
// 字符串转换成数组
$parts = array( $title . $type . $page_num, $blog_name );
// 分隔符位置
if( $seplocation == 'left' ) {
$parts = array_reverse( $parts );
}
// 清除空格、数组转换成字符串
$parts = array_filter( $parts );
$title = implode( ' ' . $sep . ' ', $parts );
}
// 返回 $title
return $title;
}
add_filter( 'wp_title', 'new_title', 10, 3 );

炫意HTML5 » WordPress通过functions.php修改meta title样式

Java基础教程Android基础教程