WordPressのAPIを利用することで記事の投稿を行うことができます。
WordPressPCL というライブラリを使うことで、C#で簡単にWordPressへ記事を投稿することができます。そのために必要な手順をまとめます。
【検証環境】Visual Studio2019 / .NET Core 3.1(コンソール)
WordPressPCL の利用準備
WordPressPCL を利用するためには、下記を行う必要があります。
パッケージをインストール
PM> Install-Package WordPressPCL
プラグインのインストール
JWT Authentication for WP REST API をWordPressにインストールします。

また、wp-config.php に下記を追記します。
define('JWT_AUTH_SECRET_KEY', 'your-top-secret-key');
WordPressPCL の使い方
下記のWordPressクラスを作成します。
using System.Threading.Tasks;
using WordPressPCL;
using WordPressPCL.Models;
public class WordPress
{
private WordPressClient Client;
private string UserName;
private string PassWord;
public WordPress(string url, string _userName, string _passWord)
{
Client = new WordPressClient(url);
UserName = _userName;
PassWord = _passWord;
}
public async Task Auth()
{
await Client.RequestJWToken(UserName, PassWord);
}
public async Task PostArticle(Post post)
{
if (await Client.IsValidJWToken())
{
var createdPost = await Client.Posts.Create(post);
}
}
public async Task<MediaItem> UploadMedia(string filePath, string fileName)
{
return await Client.Media.Create(filePath, fileName);
}
}
url はホームページのURL + “/wp-json”を渡します。
userName, passWord はWordPressに設定しているものを渡します。
アイキャッチ画像は一旦アップロードする必要があります。 FeaturedMediaにアップロードした画像の戻り値を渡すことでアイキャッチ画像を設定することができます。
var wordpress = new WordPress(@"https://pg-life.net/wp-json"
, "userName"
, "passWord");
await wordpress.Auth();
//アイキャッチ画像のアップロード
var mediaItem = await wordpress.UploadMedia(filePath, fileName);
var post = new Post()
{
//タイトル
Title = new Title("Title Test"),
//コンテンツ
Content = new Content("Content Test"),
//スラッグ
Slug = "test",
//投稿ステータス
Status = Status.Draft, //下書き
//アイキャッチ画像
FeaturedMedia = mediaItem.Id,
};
await wordpress.PostArticle(post);
上記コードを実行することで、プログラムから投稿できたことが確認できました。
