Connecting to WordPress using C#
Tags: csharp, netcore, wordpress, blog
Published: 2018-09-20 15:11:41

---
title: Connecting to WordPress using C#
published: true
description: check how to connect to a WordPress website using c#
tags: csharp, net core, WordPress, blog
canonical_url: https://yeisonpx.com/software-development/a-step-by-step-to-connect-to-wordpress-using-c-sharp/
---

![alt text](http://yeisonpx.com/wp-content/uploads/2018/09/Screen-Shot-2018-09-18-at-9.09.51-AM-1024x558.png "Connecting c# to Wordpress") 

In this post, we will see how to connect to Wordpress website using C# and make publications using WordpressPCL library in three easy steps. 

Wordpress is a great CMS that allow developers and people that don't need a lot of software development skills to create websites with awesome functionalities. Therefore, is one of the most popular tools uses actually to build websites. 

This CMS is very flexible to create custom functionalities, although is very possible that exists like a plugin that can be installed to the site. Wordpress has a big community of developer with a lot of experience with the platform where you can find solutions for almost all the issue you can have. 

The thing with Wordpress is that was built in PHP, so if you don't know the language you can lose time in the process to learn and then implement what you want to do. 

Next, We will see how to configure a visual studio project with c# to connect to a website with Wordpress, that is a good solution for .Net developers that don't have good knowledge of PHP.

1\. Configure Wordpress API in your website
-------------------------------------------

First of all, you need to configure your site to have enabled the API that allows reading and writing on WordPress. The prerequisites to connect to Wordpress with WordpressPCL is to install the following plugins in your website:

*   [WP REST API](https://github.com/WP-API/WP-API)
*   [JWT Authentication for WP REST API](https://wordpress.org/plugins/jwt-authentication-for-wp-rest-api/)

Then to complete de JWT configuration is necessary to add some modifications to the .**htaaccess** file:

*   First, enable HTTP Authorization Header adding the following:

```
    RewriteEngine on
    RewriteCond %{HTTP:Authorization} ^(.*)
    RewriteRule ^(.*) - [E=HTTP_AUTHORIZATION:%1]
```
 

*   Then enable the WPENGINE adding this code in the same .**htacess** file:
```

    SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
```

The JWT needs a **secret key** to sign the token this **secret key** must be unique and never revealed.

To add the **secret key** edit your wp-config.php file and add a new constant called **JWT\_AUTH\_SECRET\_KEY.**

```php
    define('JWT_AUTH_SECRET_KEY', 'your-top-secrect-key');
    
```
 

You can generate and use a string from here https://api.wordpress.org/secret-key/1.1/salt/

You can see all the details from the documentation [here.](https://wordpress.org/plugins/jwt-authentication-for-wp-rest-api/)

2\. Install WordpressPCL from Nuget Packages
--------------------------------------------

Now you need to install the Wordpress nuget package from Visual Studio called **WordpressPCL**. To open nugget packages manager do right click on your project in Visual Studio and then click to **Manage Nuget Package**. 

![alt text](http://yeisonpx.com/wp-content/uploads/2018/09/nugget-packages-1024x576.png "Install WordpressPCL from Nuget Packages")

Then search **WordPressPCL** and do a right click on **Install**. 

![alt text](http://yeisonpx.com/wp-content/uploads/2018/09/nugget-packages-1-1024x532.png "Installing WordpressPCL from nuget packages")

You can also install the packages using the nuget packages console inserting the following commands: 

```
Install-Package WordPressPCL -Version 1.5.0

```

What you can do with WordpressPCL? Well, the following table shows the supported methods that you have access to uses. 

![alt text](http://yeisonpx.com/wp-content/uploads/2018/09/Screen-Shot-2018-09-18-at-3.16.49-PM.png)

Now that we have configured and installed all that you need, let's see how we can create, update and query data from Wordpress.

### Example 1: Connecting to Wordpress

To connect to Wordpress client you can use the class **WordPressClient** that accept in his constructor the  URL of your website. Example http://domain-example.com/wp-json/. Where the **/wp-jon/** is the default path to the Wordpress REST API. 

```csharp
private static async Task<WordPressClient> GetClient()
        {
            // JWT authentication
            var client = new WordPressClient("http://wordpress-domain.com/wp-json/");
            client.AuthMethod = AuthMethod.JWT;
            await client.RequestJWToken("user", "password");
            return client;
        }
```

### Example 2: Creating and Updating Data

```csharp 
using System;
using System.Linq;
using System.Threading.Tasks;
using WordPressPCL;
using WordPressPCL.Models;

namespace WordPressTest
{
    class Program
    {
        static void Main(string[] args)
        {
            CreatePost().Wait();
        }

        private static async Task CreatePost()
        {
            try
            {
                WordPressClient client = await GetClient();
                if (await client.IsValidJWToken())
                {
                    var post = new Post
                    {
                        Title = new Title("New post test"),
                        Content = new Content("Content for new post.")
                    };
                    await client.Posts.Create(post);
                }
            }
            catch (Exception e)
            {
                Console.WriteLine("Error:" + e.Message);
            }
        }

        private static async Task<WordPressClient> GetClient()
        {
            // JWT authentication
            var client = new WordPressClient("http://wordpress-domain.com/wp-json/");
            client.AuthMethod = AuthMethod.JWT;
            await client.RequestJWToken("user", "password");
            return client;
        }
    }
}

```


### Example 3: Getting data

To query data is easy as you can see below: 

```csharp 

    var client = GetClient();

    //Getting all the post
    var posts =await client.Posts.GetAll();
                    
    //Getting one post
     var onePost = await client.Posts.GetByID(1);

```

You can download these examples from my Github account in the project [WordpressTest](https://github.com/yeisonpx/WordpressTest) and for more information about the WordpressPCL API, you can check the official documentation here: [Github WordpressPCL Documentation.](https://github.com/wp-net/WordPressPCL) 

I hope that I can help you to have a good introduction to of how to connect with a Wordpress website using .Net. 

Please let me know if you have any dude.

Original post: [Step By Step to Connect to Wordpress Using C Sharp](https://yeisonpx.com/software-develoment/a-step-by-step-to-connect-to-wordpress-using-c-sharp/)