900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > php 修改 title WordPress通过functions.php修改meta title样式

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

时间:2019-05-16 02:39:50

相关推荐

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

WordPress默认的标题是这样的:

首页:副标题 | 博客名称

其他:标题 | 博客名称

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

首页:博客名称 - 副标题

其他:标题 - 博客名称

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

如果你的主题里面已经定义好了 标签,那就很好办,直接修改主题中的顶部文件 header.php 文件。但是我的主题没有自己做,直接引用了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 );

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。