Tinkering with Python xmlrpclib, in this case for updating a WordPress blog from the command line. Using Python 2.7.6 here. xmlrpclib is included with Python 2.7, but if you need it, install with Pip.
import xmlrpclib
server = xmlrpclib.Server("http://www.mywordpress.com/xmlrpc.php", verbose=True)
user = "my_username"
password = "my_password"
#List available methods supported by WordPress
methods = server.system.listMethods()
for method in methods:
print method
def wpGetComments():
""" Get comments from a given WP post """
""" https://codex.wordpress.org/XML-RPC_WordPress_API/Comments#wp.getComments """
listComments = server.wp.getComments(0, user, password, {'post_id': 1302, 'number': 10})
for comment in listComments:
print "Status: {0}nAuthor: {1}nDate: {2}nComment: {3}nn".format(comment["status"],
comment["author"],
comment["date_created_gmt"],
comment["content"][:50])
wpGetComments()
def wpGetPosts():
""" Get all the posts from your WP blog """
""" https://codex.wordpress.org/XML-RPC_WordPress_API/Posts """
listPosts = server.wp.getPosts(0, user, password, {'post_status': 'publish'})
for post in listPosts:
print "Title: {0}nAuthor: {1}nDate: {2}nText: {3}nn".format(post["post_title"],
post["post_author"],
post["post_date"],
post["post_content"][:50])
wpGetPosts()
def wpCreatePost():
""" Create a new post on your WP blog """
""" https://codex.wordpress.org/XML-RPC_WordPress_API/Posts#wp.newPost """
createPost = server.wp.newPost(0, user, password,
{'post_type': 'post', 'post_status': 'draft',
'post_author': 1, 'post_title': 'Test XMLRPC',
'post_content': 'abcdefghijklm'})
# WordPress returns post ID if successful
if server.methodReponse.value is not None:
# Needs better logic but you get the point
print "Post created!"
wpCreatePost()
def wpEditPost():
""" Edit an existing post on your WP blog """
""" https://codex.wordpress.org/XML-RPC_WordPress_API/Posts#wp.editPost """
editPost = server.wp.editPost(0, user, password, 1343,
{'post_title': 'Create WordPress Posts from an RSS Feed'})
# WordPress returns 1 if successful
if server.methodResponse.value is not None:
# Needs better logic but you get the point
print "Post edited!"
wpEditPost()
![]()