A versatile Python library for seamless interaction with the WordPress REST API, including built-in SEO features and more.
Project description
wp_api
wp_api is a Python library designed for interacting with the WordPress REST API. It simplifies the process of managing posts, pages, media, categories, tags, and SEO settings on WordPress sites.
Features
- Post Management: Create, update, delete, and list posts.
- Page Management: Create, update, delete, and list pages.
- Media Management: Upload, update, delete, and list media items.
- Category & Tag Management: Create, update, delete, and list categories and tags.
- SEO Management: Manage SEO settings using the Yoast SEO plugin.
Installation
To install wp_api, simply use pip:
pip install wp_api
Usage
Initialization
To start using the library, first, initialize the WPClient with your WordPress site credentials:
from wp_api import WPClient
wp = WPClient(
base_url="https://your-wordpress-site.com",
username="admin",
password="your-password"
)
Posts
Fetch Posts
Retrieve the first page of posts:
posts, pagination = wp.posts.list(params={'per_page': 10, 'page': 1})
print(f"Total posts: {pagination['total']}")
print(f"Total pages: {pagination['total_pages']}")
print(f"Current page: {pagination['page']}\n")
Create a Post
Create a new post with categories and tags:
post = wp.posts.create(
title="My New Post",
content="This is the content.",
status="publish",
categories=[2],
tags=[5, 6],
featured_media=15
)
Delete a Post
To delete a post, use:
wp.posts.delete(123, force=True)
Pages
Create a New Page
To create a new page:
page = wp.pages.create(
title="About Us",
content="This is our about page.",
excerpt="About page",
status="publish"
)
Media
Upload an Image
To upload a media item, execute:
media = wp.media.upload(
file_path='./images/photo.jpg',
title='My Photo',
alt_text='A beautiful photo',
description='Uploaded via REST APIs'
)
Categories
Create a Category
new_category = wp.categories.create(
name="Tech News",
slug="tech-news",
description="Technology related articles"
)
Tags
Create a Tag
new_tag = wp.tags.create(
name="Python",
slug="python",
description="All posts about Python"
)
SEO
Update Post SEO (Yoast SEO)
Ensure your site has the Yoast SEO plugin activated to manage SEO settings easily:
if wp.seo.is_yoast():
wp.seo.update(
post_id=456,
title="Page SEO Title",
description="Meta description for the page.",
og_title="OpenGraph Title for Page",
og_description="OpenGraph Description for Page",
type="page"
)
License
This project is licensed under the MIT License - see the LICENSE file for details.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file wpypress-0.1.0.tar.gz.
File metadata
- Download URL: wpypress-0.1.0.tar.gz
- Upload date:
- Size: 7.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ce3404f4f158caeafcd999c968273612015bbccabb658275e9f871b6eb2b6745
|
|
| MD5 |
cd1edf02215ce6266171ce96c1ea89c4
|
|
| BLAKE2b-256 |
d27726e59cc75912e073e3bc51c09abbb82ec1c5e2399ee796e753a6dcae21b0
|
File details
Details for the file wpypress-0.1.0-py3-none-any.whl.
File metadata
- Download URL: wpypress-0.1.0-py3-none-any.whl
- Upload date:
- Size: 8.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1e467697f1090edd11ca1be889de8c24b051847c5646efb6aa082a03b2433d5d
|
|
| MD5 |
8e31f7f06e181c95ab39e37cdd17c123
|
|
| BLAKE2b-256 |
fa74590570845b9a33db9f0a7e0230c326663ffc63807ec97ccd5d1c75df5e56
|