上周发了一篇《WordPress博客添加首页、文章页、页面、分类页、标签页的关键字和描述进阶版》,很多朋友留言说自己加太麻烦了,直接系统自己截取。好吧,我实在佩服大家怎么能这么懒呢?如果你确实很懒,下面我会发关键字自动用标签,描述自动截取文章开头100字的方法。如果你是搞SEO的,我还是推荐你手动加关键字和描述。
好了,大家打开上面那篇文章,第一、二步照做,第三步不同,看下面:
三、用编辑器打开header.php,在<head>
与</head>
之间任意地方(一般加到</title>下面比较美观)加上如下代码:
<?php //如果是首页 if (is_home()){ $keywords = "你网站首页的关键字,自己修改吧"; $description = "你网站首页的描述,自己修改吧"; } //如果是文章页 elseif (is_single()){ //默认使用文章页添加关键字 $keywords = get_post_meta($post->ID, "keywords", true); //如果为空,使用标签作为关键字 if($keywords == ""){ $tags = wp_get_post_tags($post->ID); foreach ($tags as $tag){ $keywords = $keywords.$tag->name.","; } //去掉最后一个, $keywords = rtrim($keywords, ', '); } //默认使用文章页添加描述 $description = get_post_meta($post->ID, "description", true); //如果为空,使用文章前100个字作为描述 if($description == ""){ if($post->post_excerpt){ $description = $post->post_excerpt; }else{ $description = mb_strimwidth(strip_tags(apply_filters('the_content',$post->post_content)),0,200); } } } //如果是页面,使用页面添加的关键字和描述 elseif (is_page()){ $keywords = get_post_meta($post->ID, "keywords", true); $description = get_post_meta($post->ID, "description", true); } //如果是分类页,使用分类名作为关键字,分类描述作为描述 elseif (is_category()){ $keywords = single_cat_title('', false); $description = category_description(); } //如果是标签页,使用标签名作为关键字,标签描述作为描述 elseif (is_tag()){ $keywords = single_tag_title('', false); $description = tag_description(); } //去掉两段空格 $keywords = trim(strip_tags($keywords)); $description = trim(strip_tags($description)); ?> <meta name="keywords" content="<?php echo $keywords; ?>" /> <meta name="description" content="<?php echo $description; ?>" />
这次我把主要的注释都加上了,我想大家应该看得懂吧?
主要是文章页那里多了几个判断。默认使用文章页添加关键字,如果为空,使用标签作为关键字。默认使用文章页添加描述,如果为空,使用摘要内容,如果摘要为空,使用文章前100个字作为描述。
如果你看到了这里,那么我相信一定会有人觉得又要下载PHP文件,又要改functions.php好麻烦啊!而且也不愿意手动加这些信息,都用自动的。好吧,下面公布最懒的办法。
这个办法只需要修改一次代码,用编辑器打开header.php,在<head>
与</head>
之间任意地方(一般加到<title>下面比较美观)加上如下代码:
<?php if (is_home()){ $keywords = "你网站首页的关键字,自己修改吧"; $description = "你网站首页的描述,自己修改吧"; } elseif (is_single()){ $tags = wp_get_post_tags($post->ID); foreach ($tags as $tag){ $keywords = $keywords.$tag->name.","; } $keywords = rtrim($keywords, ', '); if($post->post_excerpt){ $description = $post->post_excerpt; }else{ $description = mb_strimwidth(strip_tags(apply_filters('the_content',$post->post_content)),0,200); } } elseif (is_page()){ $keywords = get_post_meta($post->ID, "keywords", true); $description = get_post_meta($post->ID, "description", true); } elseif (is_category()){ $keywords = single_cat_title('', false); $description = category_description(); } elseif (is_tag()){ $keywords = single_tag_title('', false); $description = tag_description(); } $keywords = trim(strip_tags($keywords)); $description = trim(strip_tags($description)); ?> <meta name="keywords" content="<?php echo $keywords; ?>" /> <meta name="description" content="<?php echo $description; ?>" />
OK,5个页面的关键字和描述,只要设置一次,以后全部都是自动的。刚刚准备把这个方法写成一个插件,结果看了半天插件教程,依然搞不定。希望之后能写个简单的插件,让懒人更懒一点吧。
20120701已经把后面这种懒人方法写成了一个插件,还在考虑是否集成上面的那种手动添加方法。希望大家给点意见,是全自动获取好(下面这种方法),还是可以手动添加,如果手动没有添加,就自动获取(上面那种方法)。我会参考留言意见,大概下周末发表这个插件。
😆 我一直用的这个~~你还少去乱码的代码~~
你又可以写一篇最终完美版的文章了 😮
貌似我也用着个代码
😈 不错哦,我就是用的这种方法,当初看的柳城的文章。
更新了,呵呵!! ❗
还有最终版吗?期待最终版……
没法写最终版吧,总有高人比我厉害的。
或许最后只会弄个简单的插件给新手不想折腾代码的人吧。
呵呵 继续折腾啊
我也是这么整滴。
还会集成插件 高手 膜拜
我现在这个主题貌似就是你的这个方法,但是我不喜欢自动提取的,所以用你前面那篇文章的方法了,几百篇文章,我要慢慢修改过去了…..累人的活啊
那就用这篇文章上面的方法,如果有自己设置就使用设置的,如果没有设置,就用自动获取的。
我感觉还是自己添加关键词和说明比较好,我的文章有点杂,呵呵
看不懂啊 哇哦
代码好多,我有点晕了
嘿嘿,这个对SE0好。刚好可以用来做我的模板用。谢谢了。
原来是这个插件~
新手不懂看代码啊, 😥
小心折腾上瘾哦。
西门,我用的是最懒的方法,用的是wordpress 3.4.1版本,模板是默认的那个模板Twenty Eleven,我在这个Twenty Eleven的header.php文件中,加入了你这篇文章中的“修改一次代码”中的代码,但是查看网页源文件的时候,我发现我的那些中文文字描述,都是乱码。这是怎么回事?
找一个可以修改编码的编辑器,把header.php的编码修改成utf-8
虽不懂。。。但觉屌 😎
在 文章页面 title后面如何添加 keywords …
例如:文章标题 – 文章标签 | 网站名称
这个很简单吧,找到header.php里的title便签,里面加标签函数即可。标签的函数上面代码里也有啊!
新折腾了个主题,决定有用这个了,哈哈!
能帮我看看我的博客吗?首页添加汉字的描述就是乱码,如果用记事本另存为编码为utf-8的话,可以显示正常,但是问题出来了,其他页面都是靠左对齐的,能帮助我吗 谢谢。
记事本的格式会有问题的,请使用其他有修改编码功能的编辑器来换utf-8格式。
记事本不适合普通人修改代码。
非常感谢你的回复,给推荐一款编辑器吧,Dreamwaver8 可以吗
可以,用你最习惯的就行。
谢谢,问题已经解决
请问 你用的是自动的 还是手动添加的 关键字与描述
我是手动,有的太水的文章不想加。
看不懂的人那么多,对于我们这些小菜,直接用all in one,和wpkeylink就行了。是在不行就是在每篇文章前面加一个手动的第四款背心.哎.但是还是要膜拜代码大神么一下.
因为很多文章说all in one不好,不适合国人,我才不用,改用其他方法的。
好全面
这次的代码很不错,比上次的有进步。
😛 这个很全啊,收藏了~
如此看来移植typecho,也是不容放缓之计
Typecho不需要这个,他自带 ❓
坑爹的代码 啊
已经出插件版了
已经出插件了,欢迎下载
我是被强大的域名吸引过来的!!!
看的懂,看的懂。
恩,这个挺好的
很不错的方法,看来我的博客可以抛弃 All in one seo pack 这款插件了!
建议你这里再弄一下,很多标签都是没有描述的,建议把没有描述的标签弄成自动抓取140字吧
标签页是文章列表形式,怎么抓140字?
文章里面咯
你比楼主还有才哦
这个我采用的是手动添加法 虽然累些 但是很有效果,对搜索引擎很友好
楼主很强大,支持 😛
还是进阶篇那个给力、、自动的难免不太准确、、
悲剧了,高兴了半天、、结果跟主题的自定义模块冲突、、还是得用自动、、
会冲突?分享一下?
你的这段代码很有意思啊,自己写的代码,内容页一直没法搞定,借鉴了下你的代码,完善了我内容页的SEO代码!不错,谢谢了!
不客气,你博客打不开了,用的DA吧
最近在研究linux vps
研究好了我就搬到自己的VPS里了!
网站已经搬到VPS里了!可以正常访问了!前几天空间商得DA授权出问题了!
插件哪里下载呀
https://ximan.org/396.html
插件在这里
不想用tags作为关键字,请问如何更改为手动设置呢?
https://ximan.org/7.html
https://ximan.org/393.html
这两种只能手动填写关键字,如果不填,就为空。
我是默认的模版,怎么添加首页和内页的关键字及描述呢??我打开header.php是这样的
跪求,
<?php
/**
* The Header for our theme.
*
* Displays all of the <head> section and everything up till <div id="main">
*
* @package WordPress
* @subpackage Twenty_Ten
* @since Twenty Ten 1.0
*/
?><!DOCTYPE html>
<html <?php language_attributes(); ?>>
<head>
<meta charset="<?php bloginfo( 'charset' ); ?>" />
<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', 'twentyten' ), max( $paged, $page ) );
?></title>
直接加到你这段代码最后面,</title>的后面。
找很久了,谢谢啊
楼主的代码就是我要找的,太谢谢了,不错,这样省下不少心了
楼主加一个分享代码在文章里面,方便我们转载到QQ空间或者其他的博客上面,省的复制了
终于找到了一个完美的。网上流行的那个版本,加关键词之后会多一个英文的“,”,你这个加入了判断。非常OK~感谢啊
不客气,尽快拿吧
亲 if($description == ""){
if($post->post_excerpt){
$description = $post->post_excerpt;
}else{
$description = mb_strimwidth(strip_tags(apply_filters('the_content',$post->post_content)),0,200);
}
}
}
判断写的有问题哦。
亲,什么问题?
貌似page页面的描述和关键词不行吧?
可以的,只要在page页面里也加“自定义栏目”即可
找遍了整个互联网,只有博主总结的好啊 谢谢了 已经用上了 呵呵
我用了你的这个办法,但新建的页面,没有关键字和描述。该如何解决,因为我的首页设置成一个页面。
到“页面”编辑页,右上角有“显示选项”,打开后,把“自定义栏目”勾选上,就可以输入关键字和描述了。
把“自定义栏目”勾选上,没有可以输入关键字和描述的地方。 ❓
看这个https://ximan.org/7.html
我今天刚弄好的wordpress ,我看到很多人在文章里添加广告的方法,我用的3.8.1版本 在文章页面的single.php文件找不到<?php the_content(); ?>是什么原因啊?在后台看不到,用DW在文件里也找不到!
大概是你主题的作者比较高级,不是直接在single.php里加的。去找找有没有loop-single.php,如果有这个文件,里面应该有<?php the_content(); ?>
我用的方法略复杂了,包括验证码,超连接限制,关键词屏蔽,拒绝无referer来源的Spam机器人垃圾评论,IP地址拉黑……
楼主邮箱或者qq是多少啊,诚心请教,能不能把title也写进去,比如分类页:自带的标题格式是:网站名+分类名。我想实现标题自定义,比如好看的热门的动作电影,而不只是动作电影+分类,这样太局限了
你这个想法很好,确实title也需要很多种判断
直接粘贴到我的头部文件中吗
我的头部文件没有title我晕
你header.php里是啥?
有没有QQ我加你,我设置了但是有两个关键词和标签
❓ 我怎么一加文章页就空白打不开,帮忙分析下什么原因呢?
应该是php错误,一般都是php错误导致页面空白
多谢,确实是php问题,我没有mbstring组件。
home页判断“ if (is_home() ”宜增加首页选项“ is_home() || is_front_page()”,很多国外主题会使用单独的页面模板做首页的。
感谢,我还是第一次见is_front_page(),要多多学习啊
我复制了上面的代码了,可是内容页和文章页的描述和关键词是空
的,该怎么添加啊
默认使用文章页添加关键字,如果为空,使用标签作为关键字。默认使用文章页添加描述,如果为空,使用摘要内容,如果摘要为空,使用文章前100个字作为描述。
请问你是否没有设置关键字或者标签是标签什么的?
文章页有了 ,“如果是页面,使用页面添加的关键字和描述”
页面的关键词和描述在哪儿添加了啊
自定义域里加,https://ximan.org/7.html
代码版的首页也不显示关键词跟描述,其他都正常~