こんな時代だからこそWordPressプラグイン”Marklane”を作った

こんな時代だからこそWordPressプラグイン”Marklane”を作った

AIエージェントがコードを書き、ドキュメントを整理し、なんならブログ記事まで自動で書き上げてくれる。そんな時代になりました。

世間では「WordPressはオワコン」なんて囁かれることもありますが、こんな時代だからこそ、あえて新しいWordPressプラグインを開発し、公式ディレクトリに公開しました。

作成したのは、**Markdownファイルから直接WordPressの記事を公開できるプラグイン「Marklane」**です。

今回は、なぜこのタイミングでわざわざ自作のプラグインを作ったのか、そのモチベーションと、プラグインの機能について紹介します。

既存のプラグインでは「しっくり」こなかった

発端は至ってシンプルでした。「AIエージェントと一緒にMarkdownで書いた記事を、そのままWordPressに投稿したい」。

最初は既存のMarkdownインポーター系のプラグインをいくつも試しました。しかし以下の理由から、どうにもしっくりこなかったのです。

  • 公開まで一気にいけない
    Markdownの取り込み自体はできるものの、一旦「下書き」状態になってしまい、結局手動で公開ボタンを押さなければならない。
  • メタデータが設定できない
    取り込みの時点で、アイキャッチ画像やカテゴリ、タグなどの設定をまとめて行えるものがない。
  • 多言語対応が面倒
    日本語記事を書いた後、AIエージェントに英語版の記事も作ってもらっているのですが、既存プラグインだと「日本語記事と英語記事の紐づけ(Polylangなど)」を手動でやらなければいけない。
  • そもそもWordPressの編集画面を開きたくない
    一度Markdownの快適さに慣れてしまうと、投稿編集画面を開き、ぽちぽちと設定していく作業すら苦痛になってきました。

「大した問題ではない」と一言で片付けてしまうと身も蓋もないのですが、まさにその「ちょっとしためんどくささ」が積み重なることで、記事執筆~公開へのモチベーションが削れてしまうことがありました。

「もうこれは自分で作った方が早いし、自分の理想のワークフローを実現できるのでは?」
そんなモチベーションから開発をスタートし、結果的にWordPressの公式ディレクトリで公開されるまでに至りました。

なぜWordPress内のAI機能を使わないのか?

最近はWordPress 7に向けてAI対応が強化されるという話もありますし、すでに「AIで記事を自動生成するプラグイン」も多数存在します。
それでも私が「ローカルでMarkdownを書き、プラグインで取り込む」というアプローチをとったのには明確な理由があります。

  1. Gitで完全に管理したい
    記事の変更履歴、過去のバージョン、画像リソースなどをすべてリポジトリ上で管理したいという強い思いがありました。WordPressのデータベース内に閉じてしまうと、この運用が難しくなります。
  2. リポジトリのルールに従ってAIに書かせたい
    これが一番の理由かもしれません。AIに記事を書かせる際、「独自の文体」「プロジェクト固有のトーン&マナー」といったルールをリポジトリ内に定義し、それに沿ってエージェントに執筆させるのが現在の私のスタイルです。WordPress上のAI機能よりも、ローカルのAIエージェントにコンテキストをフルに読ませて作業させる方が、圧倒的に質の高いアウトプットが出せるのです。

「Git管理されたルールベースのAI執筆」×「WordPressへのシームレスなデプロイ」。これを繋ぐピースがどうしても必要でした。

そもそもAstroやフラットファイルCMSで良くない?

ここで、「Markdownで管理するなら、そもそもAstroのような静的サイトジェネレーター(SSG)やフラットファイルCMSを使えばいいのでは?」という疑問を持つ方もいるでしょう。

その意見はもっともです。 ゼロから技術ブログを作るだけであれば、そういったモダンな技術スタックを採用する方が自然かもしれません。

しかし、既存のサイトの多くはすでにWordPressで運用されています。 また、WordPressには様々なテーマや、SEO、セキュリティ、EC機能など、強力なプラグインをはじめとするエコシステムが圧倒的に揃っています。

「WordPressの強力なエコシステムや既存の運用基盤はそのまま活かしつつ、執筆環境だけをモダンなGit + AI + Markdownに切り出したい」という需要において、WordPressとMarkdownを直結させるアプローチには大きな価値があると考えています。

「Marklane」の機能紹介

というわけで、私の理想のワークフローを実現するために作ったのが「Marklane」です。
この子の推しポイントをいくつか紹介します。

YAML Frontmatterで記事の設定を完結

記事の先頭にYAML形式でメタデータを記述することで、WordPress側の設定をすべてコントロールできます。

フロントマターの記述例:

---
title: "こんな時代だからこそWordPressプラグイン”Marklane”を作った"
slug: "marklane-plugin-release-ja"
status: "publish"
date: "2026-04-30T12:00:00+09:00"
category: ["Tech", "WordPress"]
tags: ["Plugin", "AI"]
featuredImage: "./marklane-release-eyecatch.png"
lang: "ja"
translations:
  en: "marklane-plugin-release-en"
---

これをアップロードするだけで、カテゴリやタグ(存在しなければ自動生成)、投稿ステータスなどが一発で反映されます。もうWordPressのサイドバーでチマチマ設定する必要はありません。

Slugベースでの安全な上書き更新

slug をキーにして既存記事を判定するため、「同じ記事をインポートしたら重複して作成されてしまった」という事故が起きません。
ローカルでMarkdownを修正して再アップロードすれば、安全に既存記事がアップデートされます。

アイキャッチ画像とローカル画像の自動解決

Markdownと同じディレクトリにある画像を featuredImage: "./hero.jpg" のように相対パスで指定しておくと、インポート時に自動でWordPressのメディアライブラリに登録され、アイキャッチとして設定されます。本文内の画像も同様です。

また、「FIFU (Featured Image from URL)」プラグインを導入している環境であれば、featuredImage: "https://..." のように外部URLを直接指定してアイキャッチ画像に設定することも可能です。

多言語対応(Polylang)の自動紐づけ

Polylangを使用している場合、langtranslations を指定するだけで、言語間のリンクが自動的に行われます。
AIエージェントに「このMarkdownを英訳して translations を設定して」と指示するだけで、面倒な多言語サイトの運用がほぼ全自動化されます。

※現時点ではPolylangのみの対応ですが、要望があれば他の多言語化プラグインへの対応も検討していく予定です。

事前確認(Dry Run)機能

「インポートする前に、どんなカテゴリが作られ、どの画像が紐づくのか確認したい」という要望に応えるため、Dry Run機能を搭載しています。保存前に結果やエラーをプレビューできるので安心。

余談:プラグイン名「Marklane」の由来と公式レビューの裏側

実はこのプラグイン、最初は「Markdown Upload & Importer」という名前で公式ディレクトリのレビューに申請していました。しかし、「名前が一般的すぎる(Generic name)」という理由で差し戻しを食らってしまったのです。

そこで、Markdownをスムーズかつ素早く公開できる「専用レーン(Lane)」のようなツールにしたい、という意味合いを込めて「Marklane」という名前に変更して再申請しました。

ちなみに、当時の公式プラグインのレビュー待ちはなんと約1,000件ほど溜まっており、審査を通過して公開されるまでに1〜2ヶ月ほどかかりました。膨大な数のプラグインを日々ボランティアでチェックしてくださっているコントリビューターの方々には、本当に感謝しかありません。

おわりに

AIがコードを書き、記事を生成する時代。だからこそ、「自分が本当に心地よいと感じる執筆・公開ワークフロー」を追求する価値があると思っています。

自分のために作ったプラグインですが、同じように「WordPressの編集画面を開かずにMarkdownから一発で公開したい」「GitとAIエージェントを活用した執筆フローを構築したい」という方がいれば、ぜひ「Marklane」を試してみてください。(もし気に入ったら、レビューいただけると嬉しいです...!)

これからも、自分が欲しい機能などを追加しながら開発を続けていくつもりですが、ご要望などあればぜひお知らせください。
あなたのMarkdown & WordPressライフが少しでも快適になることを願っています。