有些 WordPress 主題提供的 keywords 和 description 這兩個 meta 標籤一可能會做得很差,或者根本就不提供,這樣不利於 SEO 。本文將指導你如何給主頁、分類、頁面以及文章頁新增單獨的 Description 和 Keywords 。

很多人都在用 All in One SEO 外掛解決這個問題,但是又有很多人說這個外掛不好。大不了咱就自己用程式碼實現吧。

下面提供部落格設定 keywords 和 description 的程式碼,將以下程式碼新增至 WordPress 主題 header.php 的<head></head> 之間,最後用 UTF-8 編碼另存為,否則中文會亂碼:

<?php
$description = '';
$keywords = '';

if (is_home() || is_page()) {
   // 將以下引號中的內容改成你的主頁 description
   $description = "部落格描述";

   // 將以下引號中的內容改成你的主頁 keywords
   $keywords = "WordPress, 部落格, 程式設計";
}
elseif (is_single()) {
   $description1 = get_post_meta($post->ID, "description", true);
   $description2 = str_replace("
","",mb_strimwidth(strip_tags($post->post_content), 0, 200, "…", 'utf-8'));

   // 填寫自定義欄位 description 時顯示自定義欄位的內容,否則使用文章內容前 200 字作為描述
   $description = $description1 ? $description1 : $description2;
   
   // 填寫自定義欄位 keywords 時顯示自定義欄位的內容,否則使用文章 tags 作為關鍵詞
   $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, ', ');
   }
}
elseif (is_category()) {
   // 分類的 description 可以到後臺 - 文章 -分類目錄,修改分類的描述
   $description = category_description();
   $keywords = single_cat_title('', false);
}
elseif (is_tag()){
   // 標籤的 description 可以到後臺 - 文章 - 標籤,修改標籤的描述
   $description = tag_description();
   $keywords = single_tag_title('', false);
}
$description = trim(strip_tags($description));
$keywords = trim(strip_tags($keywords));
?>
<meta name="description" content="<?php echo $description; ?>" />
<meta name="keywords" content="<?php echo $keywords; ?>" />

以後在寫部落格文章時只需新增兩個自定義欄目 (在文章編輯頁面下面,沒有就點選右上角的顯示選項) 即可,第一個自定義欄目名稱為 keywords,欄目值寫上這篇文章的關鍵字。接著再新增第二個自定義欄目,自定義欄目名稱為 description,後面的欄目值寫上這篇日誌的描述。自定義欄目用過一次後,以後再寫日誌只需在下拉框中選擇即可。這樣每篇文章都有你自定義的 keywords 和 description 了,你完全可以拋棄 All in One SEO 外掛了。

主頁 (home) 和頁面 (page) 的 description 和 keywords 是用 PHP 程式碼直接寫的,你可將上面的部落格的描述改成你的。

分類 (category) 頁和標籤頁 (tag) 的 description 直接取分類或標籤的描述,這個可以根據需要在 WordPress 管理後臺更改,keywords 則取分類或標籤的名稱。如果你想手動給每個分類定義 description 和 keywords,可以將第 27-28 行程式碼改成:

if (is_category('音樂')) {
    $description = '這裡填音樂分類的描述';
    $keywords = '這裡填音樂分類的關鍵字,半形逗號隔開';
}
elseif (is_category('電影')) {
    $description = '這裡填電影分類的描述';
    $keywords = '這裡填電影分類的關鍵字,半形逗號隔開';
}
elseif (is_category('戲劇')) {
    $description = '這裡填戲劇分類的描述';
    $keywords = '這裡填戲劇分類的關鍵字,半形逗號隔開';
}

// 多個分類,複製 9-12 行程式碼,貼上到 13 後面行,類似 5-12 行,改一下分類名稱即可
// 使用 UTF-8 編碼另存為,替換原來的檔案,否則可能會亂碼