API وردپرس با پایتون – JC Chouinard

API را احراز هویت کنید

keys = {
    'wp_key': 'XXXX XXXX XXXX XXXX XXXX XXXX',
    'user': 'username'
    }

# Define your WP URL
url = 'https://www.example.com/wp-json/wp/v2'

# Define WP Keys
user = keys['wp_key']
password = keys['user']

# Create WP Connection
wp_connection = user + ':' + password

# Encode the connection of your website
token = base64.b64encode(wp_connection.encode())

# Prepare the header of our request
headers = {
    'Authorization': 'Basic ' + token.decode('utf-8')
    }

دریافت 10 پست اول

# Define Function to Call the Posts Endpoint
def get_posts(url, headers):
    api_url = url + f'/posts'
    response = requests.get(api_url, headers=headers)
    return response.json()

# Call API
r = get_posts(url, headers)

# Print Number of Results Return
print(len(r))
# output: 10

# Show the First Result Tile
r[0]['title']

پست های وردپرس با API

به روز رسانی دسته بندی پست ها

def update_post_categories(post_id, categories, headers=headers, url=url):

    # If multiple categories
    if isinstance(categories,list):
        categories = ','.join(categories)

    # Add values
    args = {
        'categories': categories
        }

    # Make Request
    r = requests.post(
        url + '/posts/' + str(post_id),
        headers=headers, json=args)

    return r.json()

نمایش داده های پست

def show_blog_post(post_id, headers=headers, url=url):
    r = requests.get(
        url + f'/posts/{str(post_id)}', 
        headers=headers)
    return r.json()

با رسانه های وردپرس کار کنید

نمایش داده های رسانه

def show_media(media_id, headers=headers, url=url):
    r = requests.get(
        url + f'/media/{str(media_id)}', 
        headers=headers)
    return r.json()

به روز رسانی عنوان رسانه

def update_media_caption(media_id, caption, headers=headers, url=url):

    args = {
        'caption': caption
        }

    r = requests.post(
        url + '/media/' + str(media_id),
        headers=headers, json=args)

    return r.json()

با دسته بندی های وردپرس کار کنید

نمایش داده های دسته بندی خاص

def show_category(id, headers=headers, url=url):
    response = requests.get(
        url + f'/categories/{str(id)}', 
        headers=headers)
    return response.json()

r = show_category(id, headers=headers, url=url)

نمایش همه دسته ها

نمایش تعداد صفحات حداکثر 100 عنصر در هر صفحه وجود دارد.

def get_total_cat_count(per_page=100, headers=headers, url=url):
    api_url = url + f'/categories?per_page={per_page}'
    response = requests.get(api_url, headers=headers)
    page_count = response.headers['X-WP-TotalPages']
    return int(page_count)

num_category_pages = get_total_cat_count()

ایجاد تابع برای خواندن دسته های وردپرس.

# Function to read wordpress categories
def read_wordpress_categories(page, per_page=100, headers=headers, url=url):
    r = requests.get(url + f'/categories?page={page}&per_page={per_page}', headers=headers)
    return r.json()

در هر صفحه حلقه بزنید:

categories = []
for i in range(1,num_category_pages+1):
    page_results = read_wordpress_categories(i)
    categories.extend(page_results)

حذف یک دسته

def delete_category(id, headers=headers, url=url):
    r = requests.delete(
        url + f'/categories/{str(id)}?force=True', 
        headers=headers)
    return r.json()

حذف همه دسته ها

for category in categories:
    id = category['id'] 
    if str(id) != '1': # Skip Uncategorized
        r_json = delete_category(id)
سئو PBN | خبر های جدید سئو و هک و سرور