自動為新文章新增標籤WordPress外掛(可控制標籤數量)

huangbangqing12發表於2018-05-20

每當我們寫文章的時候,都需要手動給WordPress文章新增標籤,這樣既能給訪問者明確這篇文章的重點,也能夠給網站的SEO帶來很多好處。

但是,每次都需要手動的新增耗費精力,那麼,有沒有可能實現自動為新文章新增標籤的功能呢?

目前市面上沒有一款完整的外掛,我們只能夠通過新增程式碼的方式新增。

那如果你不明白其中的原理,可以學習我們推出的WordPress主題開發教程

來到你的function.php檔案

開啟WordPress後臺>>外觀>>編輯>>模板函式function.php

新增功能所需程式碼

將以下程式碼貼上到function.php中

// WordPress 自動為文章新增已使用過的標籤
function array2object($array) { // 陣列轉物件
  if (is_array($array)) {
    $obj = new StdClass();
    foreach ($array as $key => $val){
      $obj->$key = $val;
    }
  }
  else {
    $obj = $array;
  }
  return $obj;
}
function object2array($object) { // 物件轉陣列
  if (is_object($object)) {
    foreach ($object as $key => $value) {
      $array[$key] = $value;
    }
  }
  else {
    $array = $object;
  }
  return $array;
}
add_action('save_post', 'auto_add_tags');
function auto_add_tags(){
  $tags = get_tags( array('hide_empty' => false) );
  $post_id = get_the_ID();
  $post_content = get_post($post_id)->post_content;
  if ($tags) {
    $i = 0;
    $arrs = object2array($tags);shuffle($arrs);$tags = array2object($arrs);// 打亂順序
    foreach ( $tags as $tag ) {
    // 如果文章內容出現了已使用過的標籤,自動新增這些標籤
      if ( strpos($post_content, $tag->name) !== false){
        if ($i == 5) { // 控制輸出數量
          break;
        }
        wp_set_post_tags( $post_id, $tag->name, true );
        $i++;
      }
    }
  }
}

最後的效果

相關文章