Wordpress パソコン全般

【WP REST API】タグが存在しない場合にはタグの新規登録とIDの発行を行い、タグが存在する場合にはそのIDを返すだけの関数をPythonで作った話。WordPress REST API, Python.

コトの発端

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に格納されるため、それを読み出している。

いつもの

記事の正確性については無保証です。

  • この記事を書いた人
あっきー

あっきー

とある企業の研究者。研究分野以外に手を出しすぎて毎日が慌ただしい。 研究者の肩書きが正しいかどうかは万年の謎。 得意ジャンルはデータベースとセキュリティーですが、AIやIoT、アプリ開発など、手広く活動しています。

-Wordpress, パソコン全般
-, ,

Translate »