Search code examples
pythonwordpressrestwordpress-rest-api

How to send post to WordPress with REST API


I have a Script that can send post to WordPress web site using REST API and now i need to send post with some more features first make post that have post type and second is call and set value to some custom fields

here is my python code :

auth = 'Basic ' + str(base64.b64encode(b'jason:WdOb zgW5 Oq5I LhT3 9Gkw tiJg'), 'utf-8')
                headers = {'Authorization': auth}
                body = {'title': pointer , 'content': myresult_pointer[0] ,'categories':categories_id,'status':"publish",'comment_status':"open"}
                r = requests.post('http://aaa.com/wp-json/wp/v2/posts', headers=headers, data=body)

and the url of the post type (bold part):

http://aaa.com/wp-admin/post-new.php?post_type=movies

another thing is when i run the code it return this :

{'x-powered-by': 'PHP/7.2.22', 'content-type': 'application/json; charset=UTF-8', 'x-robots-tag': 'noindex', 'link': '<http://aaa.com/wp-json/>; rel="https://api.w.org/"', 'x-content-type-options': 'nosniff', 'access-control-expose-headers': 'X-WP-Total, X-WP-TotalPages', 'access-control-allow-headers': 'Authorization, Content-Type', 'content-length': '113', 'date': 'Fri, 25 Oct 2019 20:04:58 GMT', 'referrer-policy': 'no-referrer-when-downgrade', 'connection': 'close'}


Solution

  • If you just need to create a post with custom post type, WordPress has it's own REST API to create a post. Refer here.

    Else if you have certain specific requirements that the default API does not support then you need to create a new custom endpoint. You can find help from here. There you write your logic to authenticate your API requests, creating post with POST data, saving extra field values or meta.