Action
Post to WordPress
Post to WordPress directly from Drafts.
Requirements:
- Markdown support in WordPress via Jetpack or other plugin
- the Basic Authentication Handler plugin must be installed on your WordPress site
- you should be using HTTPS for security (do not use this is you don’t have an SSL certificate for your site)
- the Base64 encoder action must be installed to set up WordPress credentials
Usage
Run this action from within a draft. It will call the Base64 action to set your site URL and credentials (these will be stored as a credential object in Drafts so you only need to enter them once.)
Do not run the Base64 encoder action directly.
Steps
-
includeAction
name WordPress credentials
-
script
// set up the initial prompt for post status var p = Prompt.create(); p.isCancellable = "true"; var options = ["status", "standard"]; var selectedOptions = ["status"]; // single selection p.addSelect("s1", "Post format...", options, selectedOptions, false); p.addButton("Publish"); p.addButton("Draft"); if (p.show()) { if (p.buttonPressed == "Publish") { var status = "publish"; } else { var status = "draft"; } var postFormat = p.fieldValues["s1"][0]; console.log(p.buttonPressed); console.log(postFormat); // Error if empty if (draft.content == "") { alert("The draft is empty!"); throw new Error("The draft is empty!"); } // define Rest API endpoint var endpoint = credential.getValue("host")+"/wp-json/wp/v2/posts"; var postContent = draft.processTemplate("[[body]]"); // create and post HTTP request var http = HTTP.create(); var response = http.request({ "url": endpoint, "method": "POST", "encoding": "form", "data": { "title": draft.title, "content": postContent, "status": status, "format": postFormat }, "headers": { 'Authorization': 'Basic '+encodedString } }); console.log("Response: " + response.statusCode); // read the API response, get the post ID of the created item then view the post var responseStr = JSON.parse(response.responseText); var id = responseStr.id; var url = credential.getValue("host")+"/?p="+id+"&preview=true"; app.openURL(url,false); } else { console.log("Cancelled"); }
Options
-
After Success Archive Notification Error Log Level Info
Items available in the Drafts Directory are uploaded by community members. Use appropriate caution reviewing downloaded items before use.