给wordpress添加关键词与描述


网站的关键字及网页描述关系网站对搜索引擎的友好程度,如果自己手动加显然太折腾了,那如何让wordpress博客自动为每篇文章自动关键字及网页描述。每篇文章的内容不同,我们该如何让wordpress自动添加文章描述和关键词呢?下面就让我们来看看如何给wordpress自动添加文章描述和关键词。
在你主题的functions.php文件添加以下代码,各个代码的功能解析如下:

  1. add_action ( 'wp_head', 'wp_keywords' ); // 添加关键字
  2. add_action ( 'wp_head', 'wp_description' ); // 添加页面描述
  3. /**
  4. +----------------------------------------------------------
  5. * 站点关键字(www.shouce.ren)
  6. +----------------------------------------------------------
  7. * @return string
  8. +----------------------------------------------------------
  9. */
  10. function wp_keywords() {
  11. global $s, $post;
  12. $keywords = '';
  13. if (is_single ()) { //如果是文章页,关键词则是:标签+分类ID
  14. if (get_the_tags ( $post->ID )) {
  15. foreach ( get_the_tags ( $post->ID ) as $tag )
  16. $keywords .= $tag->name . ', ';
  17. }
  18. foreach ( get_the_category ( $post->ID ) as $category )
  19. $keywords .= $category->cat_name . ', ';
  20. $keywords = substr_replace ( $keywords, '', - 2 );
  21. } elseif (is_home ()) {
  22. $keywords = '我是主页关键词'; //主页关键词设置
  23. } elseif (is_tag ()) { //标签页关键词设置
  24. $keywords = single_tag_title ( '', false );
  25. } elseif (is_category ()) {//分类页关键词设置
  26. $keywords = single_cat_title ( '', false );
  27. } elseif (is_search ()) {//搜索页关键词设置
  28. $keywords = esc_html ( $s, 1 );
  29. } else {//默认页关键词设置
  30. $keywords = trim ( wp_title ( '', false ) );
  31. }
  32. if ($keywords) { //输出关键词
  33. echo "<meta name=\"keywords\" content=\"$keywords\" />\n";
  34. }
  35. }
  36.  
  37.  
  38. /**
  39. +----------------------------------------------------------
  40. * 站点描述
  41. +----------------------------------------------------------
  42. * @return string
  43. +----------------------------------------------------------
  44. */
  45. function wp_description() {
  46. global $s, $post;
  47. $description = '';
  48. $blog_name = get_bloginfo ( 'name' );
  49. if (is_singular ()) { //文章页如果存在描述字段,则显示描述,否则截取文章内容
  50. if (! empty ( $post->post_excerpt )) {
  51. $text = $post->post_excerpt;
  52. } else {
  53. $text = $post->post_content;
  54. }
  55. $description = trim ( str_replace ( array (
  56. "\r\n",
  57. "\r",
  58. "\n",
  59. " ",
  60. " "
  61. ), " ", str_replace ( "\"", "'", strip_tags ( $text ) ) ) );
  62. if (! ($description))
  63. $description = $blog_name . "-" . trim ( wp_title ( '', false ) );
  64. } elseif (is_home ()) {//首页显示描述设置
  65. $description = $blog_name . "-" . get_bloginfo ( 'description' ) .'首页要显示的描述'; // 首頁要自己加
  66. } elseif (is_tag ()) {//标签页显示描述设置
  67. $description = $blog_name . "有关 '" . single_tag_title ( '', false ) . "' 的文章";
  68. } elseif (is_category ()) {//分类页显示描述设置
  69. $description = $blog_name . "有关 '" . single_cat_title ( '', false ) . "' 的文章";
  70. } elseif (is_archive ()) {//文档页显示描述设置
  71. $description = $blog_name . "在: '" . trim ( wp_title ( '', false ) ) . "' 的文章";
  72. } elseif (is_search ()) {//搜索页显示描述设置
  73. $description = $blog_name . ": '" . esc_html ( $s, 1 ) . "' 的搜索結果";
  74. } else {//默认其他页显示描述设置
  75. $description = $blog_name . "有关 '" . trim ( wp_title ( '', false ) ) . "' 的文章";
  76. }
  77. //输出描述
  78. $description = mb_substr ( $description, 0, 220, 'utf-8' ) . '..';
  79. echo "<meta name=\"description\" content=\"$description\" />\n";
  80. }