Featured image of post Python 腳本獲取 WordPress 網站的所有用戶資訊

Python 腳本獲取 WordPress 網站的所有用戶資訊

WordPress 的 /wp-json/wp/v2/users 接口用於獲取網站上的所有用戶資訊。該接口返回…

WordPress 的 /wp-json/wp/v2/users 接口用於獲取網站上的所有用戶資訊。該接口返回的回應包含以下欄位:

  • id:  用戶 ID
  • name:  用戶名稱
  • email:  用戶電子郵件地址
  • url:  用戶個人資料 URL
  • avatar:  用戶頭像 URL
  • roles:  用戶角色
  • registered:  用戶註冊日期
  • last_login:  用戶最後登錄日期
  • meta:  用戶元資料

以下是一個 Python 腳本用於獲取 WordPress 網站的所有用戶資訊的範例:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import requests

# 發送 GET 請求獲取用戶數據
response = requests.get('http://your-wordpress-url/wp-json/wp/v2/users')

# 檢查請求是否成功
if response.status_code == 200:
    users = response.json()  # 解析 JSON 數據
    total_users = len(users)  # 獲取用戶數量
    print(f"總用戶數: {total_users}\n")

    # 遍歷每個用戶
    for user in users:
        print("用戶 ID:", user.get('id', 'N/A'))
        print("名稱:", user.get('name', 'N/A'))
        print("用戶名:", user.get('username', 'N/A'))
        print("電子郵件:", user.get('email', 'N/A'))
        roles = user.get('roles', [])
        if roles:
            print("角色:", ', '.join(roles))
        else:
            print("角色: N/A")
        avatar_urls = user.get('avatar_urls', {})
        if avatar_urls:
            print("頭像 URL:")
            for size, url in avatar_urls.items():
                print(f"- {size}: {url}")
        else:
            print("頭像 URL: N/A")
        print("介紹:", user.get('description', 'N/A'))
        print("個人資料連結:", user.get('link', 'N/A'))
        print("----------------------")
else:
    print("無法獲取用戶數據。狀態碼:", response.status_code)

默認情況下,該接口返回所有用戶的資訊,包括用戶名。如果您想隱藏用戶名,可以使用 WordPress 的 show_user_logins 設定。

為了安全起見,您應該限制對該接口的訪問。您可以使用 WordPress 的 rest_user_query 過濾器來限制可以訪問該接口的用戶。