A simple wordpress api
Project description
WordPress REST API Client
Finally a simple and efficient API to work with your WordPress. A Python client for interacting with the WordPress REST API to manage content, media, and categories.
Features
- Create posts/pages
- Upload images from URLs
- Create categories
- Secure authentication handling
- Error handling for API requests
Installation
Requirements:
- Python 3.6+
- WordPress site with REST API enabled (v4.7+)
- Application password (WordPress > Users > Profile > Application Passwords)
Install dependencies:
pip install WordPRest
Initialize client
from wpAPI import WordPress
wp = WordPress(
domain='yourdomain.com',
username='admin',
password='your_application_password'
)
Create a category
new_category = wp.category("Tech News")
print(f"Created category ID: {new_category['id']}")
Upload an image
image_url = "https://example.com/image.jpg"
media = wp.upload_image(image_url)
print(f"Uploaded media ID: {media['id']}")
Create a post
post_data = {
"title": "My First API Post",
"content": "This post was created programmatically!",
"status": "publish",
"categories": [new_category['id']],
"featured_media": media['id']
}
post = wp.publish(post_data)
print(f"Published post at: {post['link']}")
API Methods
category(data) Purpose: Create a new category
Parameters: content_data (str): Category name
Returns: Category object or None on failure
upload_image(image_url)
Purpose: Upload image from URL to media library
Parameters:
image_url (str): Publicly accessible image URL
Returns: Media object or None on failure
publish(content_data, content_type="post")
Purpose: Create posts/pages
Parameters:
content_data (dict): Post/page content (see WP REST API docs)
content_type (str): "post" (default) or "page"
Returns: Post/Page object or None on failure
Content Data Structure
Typical post structure:
{
"title": "Post Title",
"content": "Post content",
"status": "publish", # or "draft"
"categories": [1, 2], # Array of category IDs
"featured_media": 123, # Media ID from upload_image()
"tags": [3, 4], # Array of tag IDs
"excerpt": "Summary text"
}
Error Handling
Methods return None on failure
Errors are printed to console with details
Common error sources:
-
Invalid credentials
-
Network issues
-
Invalid image URLs
-
Insufficient user permissions
Important Security Practices:
-
Always use application passwords (not regular user passwords)
-
Store credentials in environment variables (not in code)
-
Use HTTPS for your WordPress site
-
Restrict API access through permissions/plugins
Project details
Release history Release notifications | RSS feed
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 wordprest-0.0.6.tar.gz.
File metadata
- Download URL: wordprest-0.0.6.tar.gz
- Upload date:
- Size: 4.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c6b0c650c791482df0534254de8d789aea5b54542c572a8d34ed4c77dbf371ef
|
|
| MD5 |
019d5f93887218e01f98af1ae25e4311
|
|
| BLAKE2b-256 |
021e687b867b03b116f50fe35ec5fdbfa29e09b106b3d817eb00d2fe8da650be
|
File details
Details for the file wordprest-0.0.6-py3-none-any.whl.
File metadata
- Download URL: wordprest-0.0.6-py3-none-any.whl
- Upload date:
- Size: 4.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4a4922c7c06aa37f3dcaf7731d707801ead9d9aa81651c865957d7f543b184b2
|
|
| MD5 |
e7c624ddb6076c317443451cac30836c
|
|
| BLAKE2b-256 |
62a268af1d93eb733212ce874e0859206cd01a20a529f83464b029dfe2a91c2f
|