登入

wordpress:wp_set_object_terms(建立物件和分類法的關係)的用法

作者:neo yang 時間:2021/08/22 讀: 10040
wp_set_object_terms( int $object_id, str […]

wp_set_object_terms( int $object_id, string|int|array $terms, string $taxonomy, bool $append = false )

一、參數

$object_id

物件ID,例如post ID。

$terms

問題主要在這裡。

如果資料類型是字串,就會把這個字串當作slug,如果這個slug的term存在,則建立物件和這個term的關係,如果不存在,則先建立這個slug的term,然後建立物件和這個term的關係。

如果資料型別是整數,就會把這個值當作term的ID,如果這個ID的term存在,就會關聯這個term。

如果資料型別是數組,無論怎麼試,我都無法建立物件和term的關係。所以,對於數組,我是用foreach循環創建每一個關係的。

$taxonomy

分類法的slug,字串。

$append

如果是false,則將原本的物件和term的關係覆寫更新。如果是true,則新建一條,即,物件和同一個taxonomy新增了一個term的關係。

二、程式碼

foreach ($custom_terms as $key => $value) { if (is_array($value)) { foreach ($value as $k => $v) { wp_set_object_terms,14Tk => $v) { wp_set_object_terms(14TpostT); key) ,使用true,將陣列中所有的term和物件分別建立關係。 } }else{ wp_set_object_terms($postid,(int)$value,$key); //從介面傳來的資料都是字串,為了確保$value是整形,使用了(int)。 } } 

三、返回

(array|WP_Error) Term taxonomy IDs of the affected terms or WP_Error on failure.

四、總結

WordPress的許多函數的參數,和wp_set_object_terms的參數一樣,既可以使用字串,也可以使用數字,甚至可以使用陣列的。但,從我自己的經驗上來說,原則上,能用數字ID的,就盡量使用數字ID,能不用數組的就不用數組。這樣,往往會減少一些麻煩。

標籤:


copyright © www.lyustu.com all rights reserve.
Theme: TheMoon V3.0. Author:neo yang