Skip to content

Instantly share code, notes, and snippets.

@dersteppenwolf
Created November 23, 2012 16:15
Show Gist options
  • Star 13 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dersteppenwolf/4136298 to your computer and use it in GitHub Desktop.
Save dersteppenwolf/4136298 to your computer and use it in GitHub Desktop.
Create New Posts in Wordpress using Java and XMLRpc
import org.apache.xmlrpc.XmlRpcException;
import org.apache.xmlrpc.client.XmlRpcClient;
import org.apache.xmlrpc.client.XmlRpcClientConfigImpl;
@SuppressWarnings({ "unchecked", "rawtypes" })
@Override
/**
* Create New Posts in Wordpress using Java
*
* //http://codex.wordpress.org/XML-RPC_WordPress_API/Posts#wp.newPost
* //http://codex.wordpress.org/Function_Reference/wp_insert_post
*/
public void publishToWordpress(Item item) throws Exception {
try {
XmlRpcClientConfigImpl config = new XmlRpcClientConfigImpl();
config.setBasicPassword("your_password");
config.setBasicUserName("your_user");
config.setEnabledForExtensions(true);
config.setEnabledForExceptions(true);
XmlRpcClient client = new XmlRpcClient();
client.setConfig(config);
Hashtable post = new Hashtable();
post.put("post_title", item.getTitle());
post.put("post_content", item.getDescription());
post.put("post_status", "publish");
post.put("post_date", item.getPubDate());
post.put("comment_status", "open");
post.put("ping_status", "open");
Hashtable taxonomies = new Hashtable();
List<String> categories = new ArrayList<String>();
Set<ItemTheme> themes = item.getItemThemes();
for (Iterator iterator = themes.iterator(); iterator.hasNext();) {
ItemTheme itemTheme = (ItemTheme) iterator.next();
Theme theme = itemTheme.getTheme();
categories.add(theme.getTitle());
}
//custom taxonomies...
List<String> tags = new ArrayList<String>();
List<String> persons = new ArrayList<String>();
List<String> places = new ArrayList<String>();
List<String> events = new ArrayList<String>();
List<String> organizations = new ArrayList<String>();
List<String> source = new ArrayList<String>();
//..add keywords to your taxonomies...
for (Iterator iterator = themes.iterator(); iterator.hasNext();) {
String theme = (String) iterator.next();
categories.add(theme);
}
taxonomies.put("category", categories);
taxonomies.put("post_tag", tags);
taxonomies.put("person", persons);
taxonomies.put("place", places);
taxonomies.put("event", events);
taxonomies.put("organization", organizations);
//custom fields....
List<Hashtable> customFieldsList = new ArrayList<Hashtable>();
Hashtable customFields = new Hashtable();
customFields.put("key", "url");
customFields.put("value", myLink);
customFieldsList.add(customFields);
customFields = new Hashtable();
customFields.put("key", "twitter_image");
customFields.put("value", linkImage);
customFieldsList.add(customFields);
post.put("custom_fields", customFieldsList);
post.put("terms_names", taxonomies);
Vector params = new Vector();
params.addElement(new Integer(0));
params.addElement(Constants.WORDPRESS_USER);
params.addElement(Constants.WORDPRESS_PWD);
//create a new post...
if(isNew){
params.addElement(post);
log.debug("inserting post...");
//log.debug("params:" + params);
String postId = (String) client.execute("wp.newPost", params);
}else{
//EDIT an existing post
params.addElement("postId");
params.addElement(post);
client.execute("wp.editPost", params);
}
}catch (XmlRpcException e){
log.error(e.getMessage(), e);
}
}
@jgperrin
Copy link

jgperrin commented Oct 5, 2015

Hi, I can't find a definition for ItemTheme, am I doing something wrong?

@RasimParvezAtIntBitTech
Copy link

How can i post the image in the blog?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment