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:
- A WordPress blog, you can download it from here.
- 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"; string result = null;
result = "";
try
{
result = categories.NewPage(1,
"admin", "Admin", newBlogPost,
1);
txtPost.Text = "";
txtTitle.Text = "";
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}