コトの発端
WordPressのREST APIを使用することで外部から記事が投稿できたら便利だよね。
しかし、記事へをタグを登録するためには、タグIDを指定して投稿する必要があるとのこと。
タグはそれぞれ新規登録だったり、登録済みだったりするため、タグIDを探したり、無かったら作ったりする必要が出てきそう。
そんなこんなで、Pythonで「タグが存在しない場合には新規登録とIDの発行を行い、タグがある場合にはそのIDを返す関数」を作ってみた。
Pythonでの実装
期待する動き
・登録済みのタグ名を指定すると登録済みのタグIDを返す。
・登録されていないタグを指定すると、タグを新規作成した後、登録済みのタグのIDを返す。
コード
import json
import requests
from urllib.parse import urljoin
user = '(ユーザ名)' # ユーザー名
password = '(APIのパスワード)'
url_base = '(APIのベースとなるURL。サイトURL?)'
url = urljoin(url_base, 'wp-json/wp/v2/tags/')
def wp_tag_add(tagname):
r = ""
post = {
'name': tagname,
}
res = requests.post(
url,
json=post,
auth=(user, password),
)
data = json.loads(res.text)
if 'code' in data:
if data['code'] == "term_exists":
r = data['data']['term_id']
else:
r = data['id']
return r
if __name__ == '__main__':
result = wp_tag_add("テストタグ")
print(result)
解説
これまでに使用したことのないタグの場合、タグが新規登録された後、レスポンスのidフィールドにタグIDが格納されて返却される。
すでにあるタグの名前をnameに設定してポストした場合、codeフィールドにterm existsが表示され、IDはdata → term_idに格納されるため、それを読み出している。
いつもの
記事の正確性については無保証です。