Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles
(untagged)

Submit a New Blog Post in WordPress using ASP.NET

0.00/5 (No votes)
1 Jan 2013 1  
How to submit a new blog post in WordPress using ASP.NET

Introduction

WordPress is a free and open source blogging tool and content management system based on PHP and MySQL. It is used widely around the world and is currently the most famous blogging systems in use over the internet.

Since WordPress is written in PHP and our application is going to be an ASP.NET application and the two are entirely different technologies and architectures, we will be using XML messages (platform independent) for communications.

WordPress provides an XML-RPC based webservice for communication with different technologies and an application which can be found on the root directory with the name xmlrpc.php.

ASP.NET requires a library XML-RPC.NET to implement and communicate XML-RPC based webservices.

Prerequisites

You are required to have the following installed before you can jump into the code, they are:

  1. A WordPress blog, you can download it from here.
  2. An XML-RPC .NET library, which can be downloaded from here.

I will be assuming that you have your blog ready and have the admin privileges to access and update any setting you may require to change.

Using the Code

Create a new website and add two textboxes and a button onto the form with the following properties:

  • Textbox1: Name -> txtTitle
  • Textbox2: Name -> txtDescription

Now extract the downloaded zip file containing the XML-RPC .NET library and add a reference to CookComputing.XmlRpcV2.dll in the bin folder.

Now add the following code:

public struct blogInfo
{
    public string title;
    public string description;
}

public interface IgetCatList
{
    [CookComputing.XmlRpc.XmlRpcMethod("metaWeblog.newPost")]
    string NewPage(int blogId, string strUserName, 
    	string strPassword, blogInfo content, int publish);
}   

We are done with creating a struct for blog info and an interface for the WordPress API. Now add the following code to the button click event:

blogInfo newBlogPost = default(blogInfo);
newBlogPost.title = txtTitle.Text;
newBlogPost.description = txtPost.Text;

IgetCatList categories = (IgetCatList)XmlRpcProxyGen.Create(typeof(IgetCatList));
XmlRpcClientProtocol clientProtocol = (XmlRpcClientProtocol)categories;

clientProtocol.Url = "http://localhost:8080/wordpress/xmlrpc.php"; //your blog address comes here
string result = null;

result = "";

try
{
    result = categories.NewPage(1, 
                        "admin", //your blog admin user id
                        "Admin", //your blog admin password
                        newBlogPost, 
                        1);
    
    txtPost.Text = "";
    txtTitle.Text = "";
}
catch (Exception ex)
{
    MessageBox.Show(ex.Message);
}  

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here