有时候,有些同学会希望浏览器上标签页出现的标题与文章内容中的标题不一致,这样可以进行SEO优化,那么这篇文章就是说怎么样来实现这样的效果。
前期准备
在放置代码之前,我们需要在写文章的页面新建一个编辑框来填写seo标题的内容,这个编辑框是利用自定义meta字段在文章中实现的。
怎么样添加这个meta字段,叶子在这里就不说了,搜索一下,大把的代码。
作者为文章添加了一个叫做seo_info的meta字段,为了减轻数据库的读写,这个字段存储了三类信息,用||分隔。分别是第一位的标题信息,第二位的关键字信息,第三位的描述信息。
我们这次需要读取的是标题信息,要注意的是,这段代码适合于wordpress4.4以上版本,另外分类、标签的是存放在分类、标签的描述里面的。
具体代码
/***************************************************SEO标题-----用于网站SEO标题*新的 WordPress 网页标题设置方法**************************************************/function yct_seo_title( $title ){global $post;//静态首页SEO标题if( (is_front_page()) ) {//获取静态页面的SEO标题,第一个为标题,第二个为关键字$seo_meta =explode('||',get_post_meta($post->ID,'seo_info',true));//如果标题存在if ($seo_meta[0]){//如果存在首页标题描述则取消if(isset( $title['tagline'] )) {unset( $title['tagline'] );}//设置首页的SEO标题$title['title']=strip_tags($seo_meta[0]);}}elseif( (is_single() || is_page()) ) { //获取页面、文章的SEO标题,第一个为标题,第二个为关键字$seo_meta =explode('||',get_post_meta($post->ID,'seo_info',true));//如果标题存在if ($seo_meta[0]){//设置页面、文章的SEO标题$title['title']=strip_tags($seo_meta[0]);}}elseif( (is_tag() || is_category()) ) {//获取标签、分类的SEO标题,第一个为普通描述,第二个为SEO标题$seo_meta =explode('||',get_the_archive_description());//如果标题存在if ($seo_meta[1]){//设置页面、文章的SEO标题$title['title']=strip_tags($seo_meta[1]);}}//返回标题return $title;}add_filter( 'document_title_parts', 'yct_seo_title' );