C#

【C#】WordPressPCLを使ってWordPressに記事を投稿する

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);


上記コードを実行することで、プログラムから投稿できたことが確認できました。

エンジニアの転職ならこれ!

【第二新卒向け】マイナビジョブ20's

マイナビジョブ20'sは、20代・第二新卒・既卒向けの転職エージェントです。

▼こんな方におすすめ
・はじめて転職しようと思っている
・転職できるだけのスキルが自分にあるか不安
・手厚いサポートを受けたい

【フリーランス向け】 Midworks

Midworksは豊富な案件と「フリーランス」と「正社員」の良いとこ取りをした働き方を実現する手厚い保障が特徴です。

▼こんな方におすすめ
・現在正社員でフリーランスになろうか悩んでいる
・フリーランスとして働いているが、先行きが不安がある  (安定的な案件確保や保障など)
・自分の市場価値を知りたい、見合った案件で参画したい
・今後のキャリアビジョンを踏まえて案件を選びたい