WordPress wp_title 模版标签
一直以来,广大 WPer 都以 wordpress 强大模板引以为荣,选中自己喜欢的模板后,再进行微调至符合自己的口味。然后就是关注搜索引擎的收录,做相关的所谓 SEO 工作,比如优化标题、安装插件,但是有的模板默认的标题显示格式并不适合搜索引擎的口味,比如:博客标题》日志标题、所有分页页面标题都是博客标题、页面标题为博客标题》页面标题……这些都有个共同的特性就是博客标题显示在最前面,按照有些大湿的说法:重复标题是 SEO 大忌啊!有木有!
今天为大家介绍的就是 wp_title 模版标签,有很多的人都知道,但是未必有好多的人都用上了。自从 wordpress 重新默认 TwentyTen 主题开始到现在的 TwentyEleven 主题,因为均为官方开发的主题,因此很有指导学习意义。里面参考主题 header.php 文件 <title> 的写法,主题无论是首页博客标题,还是文章日志标题、页面标题都进行了优化,具体大家可以切换至默认主题围观。
1、WordPress 3.0版本后默认主题 <title> 的写法,请编辑模板 header.php 文件:
/* 用以下代码替换 header.php 文件 <title> */
<title><?php
/*
* Print the <title> tag based on what is being viewed.
*/
global $page, $paged;
wp_title( '|', true, 'right' );
// Add the blog name.
bloginfo( 'name' );
// Add the blog description for the home/front page.
$site_description = get_bloginfo( 'description', 'display' );
if ( $site_description && ( is_home() || is_front_page() ) )
echo " | $site_description";
// Add a page number if necessary:
if ( $paged >= 2 || $page >= 2 )
echo ' | ' . sprintf( __( 'Page %s', '' ), max( $paged, $page ) );
?>
</title>
<title><?php
/*
* Print the <title> tag based on what is being viewed.
*/
global $page, $paged;
wp_title( '|', true, 'right' );
// Add the blog name.
bloginfo( 'name' );
// Add the blog description for the home/front page.
$site_description = get_bloginfo( 'description', 'display' );
if ( $site_description && ( is_home() || is_front_page() ) )
echo " | $site_description";
// Add a page number if necessary:
if ( $paged >= 2 || $page >= 2 )
echo ' | ' . sprintf( __( 'Page %s', '' ), max( $paged, $page ) );
?>
</title>
2、需要编辑模板 functions.php 文件的 <title> 的写法(实现效果和1效果一样):
/* 用以下代码替换 header.php 文件 <title> */
<title><?php
/*
* Print the <title> tag based on what is being viewed.
*/
global $page, $paged;
wp_title( '|', true, 'right' );
?>
</title>
<title><?php
/*
* Print the <title> tag based on what is being viewed.
*/
global $page, $paged;
wp_title( '|', true, 'right' );
?>
</title>
将以下代码丢入模板 functions.php 文件:
/* 将以下代码丢入 functions.php 文件 */
function mytheme_filter_wp_title( $title, $separator ) {
// Don't affect wp_title() calls in feeds.
if ( is_feed() )
return $title;
// The $paged global variable contains the page number of a listing of posts.
// The $page global variable contains the page number of a single post that is paged.
// We'll display whichever one applies, if we're not looking at the first page.
global $paged, $page;
if ( is_search() ) {
// If we're a search, let's start over:
$title = sprintf( __( 'Search results for %s', '' ), '"' . get_search_query() . '"' );
// Add a page number if we're on page 2 or more:
if ( $paged >= 2 )
$title .= " $separator " . sprintf( __( 'Page %s', '' ), $paged );
// Add the site name to the end:
$title .= " $separator " . get_bloginfo( 'name', 'display' );
// We're done. Let's send the new title back to wp_title():
return $title;
}
// Otherwise, let's start by adding the site name to the end:
$title .= get_bloginfo( 'name', 'display' );
// If we have a site description and we're on the home/front page, add the description:
$site_description = get_bloginfo( 'description', 'display' );
if ( $site_description && ( is_home() || is_front_page() ) )
$title .= " $separator " . $site_description;
// Add a page number if necessary:
if ( $paged >= 2 || $page >= 2 )
$title .= " $separator " . sprintf( __( 'Page %s', '' ), max( $paged, $page ) );
// Return the new title to wp_title():
return $title;
}
add_filter( 'wp_title', 'mytheme_filter_wp_title', 10, 2 );
function mytheme_filter_wp_title( $title, $separator ) {
// Don't affect wp_title() calls in feeds.
if ( is_feed() )
return $title;
// The $paged global variable contains the page number of a listing of posts.
// The $page global variable contains the page number of a single post that is paged.
// We'll display whichever one applies, if we're not looking at the first page.
global $paged, $page;
if ( is_search() ) {
// If we're a search, let's start over:
$title = sprintf( __( 'Search results for %s', '' ), '"' . get_search_query() . '"' );
// Add a page number if we're on page 2 or more:
if ( $paged >= 2 )
$title .= " $separator " . sprintf( __( 'Page %s', '' ), $paged );
// Add the site name to the end:
$title .= " $separator " . get_bloginfo( 'name', 'display' );
// We're done. Let's send the new title back to wp_title():
return $title;
}
// Otherwise, let's start by adding the site name to the end:
$title .= get_bloginfo( 'name', 'display' );
// If we have a site description and we're on the home/front page, add the description:
$site_description = get_bloginfo( 'description', 'display' );
if ( $site_description && ( is_home() || is_front_page() ) )
$title .= " $separator " . $site_description;
// Add a page number if necessary:
if ( $paged >= 2 || $page >= 2 )
$title .= " $separator " . sprintf( __( 'Page %s', '' ), max( $paged, $page ) );
// Return the new title to wp_title():
return $title;
}
add_filter( 'wp_title', 'mytheme_filter_wp_title', 10, 2 );
因为上述2种方法实现效果一样,所以本人强烈推荐用第1种方法优化标题。当然网上也有某人写了满满一页的代码就为优化博客标题显示,或许也有效果,但是代码也忒多了,我就不推荐了,有兴趣请 Google 然后自己试验。


不用wp的直接飘过,来抢个沙发坐坐
现在看到有人折腾WP,就心情鸡冻啊
准备放弃All in One SEO插件,要尽情折腾WP了,这个对我很有用啊,学习了
嗯 很有借鉴意义
之前有折腾过这个标签。但没折腾的这么深。
这个需要处理一下
@逸冰 我还是没想好转个Typecho,嘿嘿,还是 WordPress 顺手啊~
@万戈 万戈大湿,一直期待你的新作啊。
@贺昌 嗯,那个插件我开始也用过,最后发现没得啥用哦~~~能用代码解决的,我就不用插件,呵呵。
@Louis Han 相互交流,折腾折腾,哈哈~
@超人 这个不深,我只是把官方的拷了过来,囧。因为网上没人发,或者发的代码都超级的长,所以分享下:-)
@zwwooooo 嗯,我就是把原版搬了过来,测试了下,一般的主题直接拷这些代码过去都能用就没修改了。
ms我的标题还可以的
来参考一下
嘿嘿...我不知道我主题是不是用的这些...没细看。
@俊文 呵呵,去围观了,不错哦~
@努努 欢迎,欢迎!
@Demon 那就去细看下吧,标题也很重要哦~
测试下能否收到邮件通知回复。
@夏星辰 测试测试
@夏星辰 试一试看看可以收到邮件不呢?
不用WP的人围观下
我是一整个seo.php,就再也没有管过了
幸好我的模板有SEO设置 省的自己折腾了
我不用WP ,来看看~~
给力!值得学习!
其实拿官方的最新主题下手改主题我觉得是最棒的,哈哈~
时其实我觉得这个可以有,有木有
不错,来支持下!
俺的博客程序是自己弄着玩的,不过前段时间也是突然才发现好多重复的标题,确实对seo很不利
你现在也是好几天拉一次shit
便秘了
今天休息前来看看。
嘿嘿 我的也很全面~
基本只要让single与page页的title各不相同就会有效果了, 满满一页的那种有点偏执的味道-_-
ps:验证码好好玩
直接用插件?
其实我总感觉有找不到好的模板,或者找的模板都不尽如人意,所以我把博客换成了Typecho,然后,整个世界清静了
@逸冰 不用wp的也来飘一下....
这个方法不错,我收下了
@万戈 老万,淡定~~
过来围观一下。。 懒得折腾。。
佩服技术高手....虽然看不懂
不懂啊广告点点啊
呵呵 下面那个框框很有意思啊
呵呵,你的广告放的很妙啊,一不小心就点到啦
还有 你是robot吗,哈哈
玩了自己试着折腾下,你这个滑动解锁更给力
默认模板的写法太复杂了,我用的那个比较简单。
浩子的博客很猛的列,发展趋势很强
这个我有在使用
最近说这个的人明显少了,折腾的人也少了
我还用过你的模板呢,哈哈
看着那么长的代码,头痛~~
暂时不用 但还要顶一个~
我以前没有注意这个问题,但好在我用的主题已经优化过了
博主,你好,我是搜到你这里来的,我有个问题:
我想在A站,随机调用几篇B站(B站是wordpress博客)上面的文章以及该文章的链接。
请问如何实现啊?
我百度了好久,都没有这方面的资料。
盼复,谢谢,呵呵!!
我们友情链接一下吧
我的title直接复制twenty ten的...
我的博客什么都没有优化
又学到不少东西!!!
@小菜 可以直接调用你B博客的RSS,直接显示出来。你再谷歌下关于RSS调用的文章,怎么不留下博客链接啊,我们好加油哦!
@浩子
A和B是两个独立的网站。都是我自己的,而且都是WORDPRESS。
其实是这样的:我想在A站的文章里,随机插入B站文章的链接。
我这样,是不是有点异想天开啊。
SEO神马的都是浮云。。。。
浩子的博客前段时间怎么了?
许久没有折腾过了——没时间,没精力了
我是直接用插件解决啊。
写的很好,我来试试。
还真没这么详细的研究过呢
发现浩子无处不在啊。。。几乎我去过的博客都有你的足迹啊。。
看到很多牛人的身影噢!对代码不怎么熟悉就是那么悲哀!
走访几个博客大家都在谈WordPress,WordPress不愧为使用占有率最多的程序。
人气很旺啊 好多人回复
怎么成默认主题拉。。
原来能正常留言撒
再来支持浩子
模板换了?没以前的好看了,不够广告添加的位置很好,差点几次颠倒!
有用了,不过浩子的导航很牛,全是adsense,高
不刻意去SEO的路过...对我来说自己看着舒服比什么都重要。
专业,十分专业。
WordPress真是无所不能呀!
好麻烦啊……
我说帅哥 加个友链呗 你的偶都加上几天列
老了,折腾不起,,你评论还是TM多啊
@科普巴士 (#--)服务器给力的情况下,无所不能。
@灵曦 灵曦 晚上去你家玩
@聚淘网 (#--)容易上手。。插件多
你多久没有更新了....
感觉关注这些教程的越来越少了..大家搜索一下就有一大把方案。你这板子简洁得让人难以置信!
呵呵,对WordPress还只是入门,过来了解学习下了。
我是直接把if写到tltle里的
嗯……好好,官方默认主题的飘过……
浩子哪去了,好久没更新了。
嗯,写的不错,学习……
看你这个顶部广告位我震惊了~
wp是不是加载的东西太多了,感觉有些慢!!
go
@万戈
这话何意?
浩子又没更新了,不能偷懒哦
pj的童鞋路过啦。
木木来看看小浩子……
我已经又有一段时间木有研究WP了
目前在用Zblog,以后会考虑Wordpress,自己不懂代码表示看不懂,汗!至于SEO,我管度娘高不高兴呢,我的博客只是为了自己而写,顶多照顾下Google啦。
建议新手装个插件就好 折腾代码 一不小心 就出错了
于是我直接载了别的主题复制过来。twentyten非常值得学习,很多代码都从里面挖出来
来转了圈,没更新
但这广告挂的也太没人性了吧~~
哈哈,,这个方法不错哦,以前也没有多大注意,有空也去玩玩看哈。
一直以来以为浩子文就是你,原来我弄错了!
你那个Gravatar头像很给力。。。哈哈!
博客好久没更新啦。。
杂 都没更新呢
大多数优化者都在想着怎么减少标签
努力优化博客啊!
……你妹的!最近忙什么呢?都不更新了
没用过WP,一直都是ZB
喔,你这评论很多啊
据说最新的twentyeleven还支持html5呢
好像也这么折腾过
@万戈 这么巧,嘿嘿
浩子貌似最近很少更新啊。
我也正在研究WP的标签和啊,看了又很大的帮助
我一般都用SEo那个插件的
这个方法有个缺点就是如果吧|换成-,那么-前后的空格没法完美去除,要么前面有空格,要么后面有