<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>WP-CLI アーカイブ - ADHDエンジニア成長日記 ― 障害を抱えながらIT業界で活躍するためのブログ</title>
	<atom:link href="https://atueda.com/tag/wp-cli/feed/" rel="self" type="application/rss+xml" />
	<link>https://atueda.com/tag/wp-cli/</link>
	<description></description>
	<lastBuildDate>Thu, 11 Jun 2026 08:05:21 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://i0.wp.com/atueda-com-2025.s3.ap-northeast-1.amazonaws.com/wp-content/uploads/2025/11/22185004/%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%82%B7%E3%83%A7%E3%83%83%E3%83%88-2025-11-12-10.23.00.png?fit=32%2C27&#038;ssl=1</url>
	<title>WP-CLI アーカイブ - ADHDエンジニア成長日記 ― 障害を抱えながらIT業界で活躍するためのブログ</title>
	<link>https://atueda.com/tag/wp-cli/</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">250220958</site>	<item>
		<title>WordPressからNoteへ自動移行ツール完全ガイド</title>
		<link>https://atueda.com/wordpress%e3%81%8b%e3%82%89note%e3%81%b8%e8%87%aa%e5%8b%95%e7%a7%bb%e8%a1%8c%e3%83%84%e3%83%bc%e3%83%ab%e5%ae%8c%e5%85%a8%e3%82%ac%e3%82%a4%e3%83%89/</link>
					<comments>https://atueda.com/wordpress%e3%81%8b%e3%82%89note%e3%81%b8%e8%87%aa%e5%8b%95%e7%a7%bb%e8%a1%8c%e3%83%84%e3%83%bc%e3%83%ab%e5%ae%8c%e5%85%a8%e3%82%ac%e3%82%a4%e3%83%89/#respond</comments>
		
		<dc:creator><![CDATA[植田篤]]></dc:creator>
		<pubDate>Thu, 11 Jun 2026 07:38:21 +0000</pubDate>
				<category><![CDATA[ADHD]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[note API]]></category>
		<category><![CDATA[note移行]]></category>
		<category><![CDATA[Pythonスクリプト]]></category>
		<category><![CDATA[WordPressエクスポート]]></category>
		<category><![CDATA[WordPress移行]]></category>
		<category><![CDATA[WP-CLI]]></category>
		<category><![CDATA[トラブルシューティング]]></category>
		<category><![CDATA[自動移行ツール]]></category>
		<guid isPermaLink="false">https://atueda.com/?p=1905</guid>

					<description><![CDATA[<p>WordPressからNoteへ自動移行ツールの設定・実行手順とトラブル対処を、200本超の記事移行の実例で具体的に解説します。すぐに使えるコマンドと回避策で即実行可能です。</p>
<p>投稿 <a href="https://atueda.com/wordpress%e3%81%8b%e3%82%89note%e3%81%b8%e8%87%aa%e5%8b%95%e7%a7%bb%e8%a1%8c%e3%83%84%e3%83%bc%e3%83%ab%e5%ae%8c%e5%85%a8%e3%82%ac%e3%82%a4%e3%83%89/">WordPressからNoteへ自動移行ツール完全ガイド</a> は <a href="https://atueda.com">ADHDエンジニア成長日記 ― 障害を抱えながらIT業界で活躍するためのブログ</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[<div class="veu_autoEyeCatchBox"><img data-recalc-dims="1" fetchpriority="high" decoding="async" width="1024" height="572" src="https://i0.wp.com/atueda-com-2025.s3.ap-northeast-1.amazonaws.com/wp-content/uploads/2026/06/11162554/90fdd668-bc60-4b0c-abf1-132f040825ab.jpeg?resize=1024%2C572&#038;ssl=1" class="attachment-large size-large wp-post-image" alt="" /></div><h1>WordPressからNoteへ自動移行ツール【完全ガイド】設定・実行手順・トラブル対処</h1>
<p>WordPressで長年書いてきた記事、移行を始めたはいいものの手作業で気力が持たず断念しかけた――そんな経験はありませんか。私も200本以上の記事を前にして「これを手で移すのは無理だ」と直感しました。衝動的に始めては飽き、気づけばハイパーフォーカスで数時間コマンドを書き続けることも。ADHD的な特性（決断疲れ、実行機能の弱さ、衝動的な作業開始）が混ざると、単純作業はとにかく苦痛です。そこで作ったのが「WordPressからNoteへ自動移行ツール」です。本記事では、なぜ作ったか、何ができるか、仕組み、環境、使い方（STEP0～7）、トラブル対応まで、現場目線で丁寧に解説します。エンジニアが使うことを前提に、実例と判断基準も交えてお伝えします。</p>

  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-1"><label class="toc-title" for="toc-checkbox-1">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"></li><li><a href="#toc1" tabindex="0">なぜ作ったか — 感情と実務の両面から</a></li><li><a href="#toc2" tabindex="0">実現できること（概要）</a></li><li><a href="#toc3" tabindex="0">どんな仕組みか（アーキテクチャ）</a><ol><li><a href="#toc4" tabindex="0">STEP 1：WordPress記事の取り出し</a></li><li><a href="#toc5" tabindex="0">STEP 2：Noteへの自動投稿</a></li><li><a href="#toc6" tabindex="0">STEP 3：下書きの一括公開</a></li><li><a href="#toc7" tabindex="0">STEP 4：アイキャッチ画像の設定</a></li></ol></li><li><a href="#toc8" tabindex="0">動作環境とソース</a></li><li><a href="#toc9" tabindex="0">使い方：STEP 0〜7（実行手順）</a><ol><li><a href="#toc10" tabindex="0">STEP 0：Node.jsをインストールする</a></li><li><a href="#toc11" tabindex="0">STEP 1：ツールをダウンロードする</a></li><li><a href="#toc12" tabindex="0">STEP 2：フォルダを開く</a></li><li><a href="#toc13" tabindex="0">STEP 3：必要なソフトをインストールする</a></li><li><a href="#toc14" tabindex="0">STEP 4：設定ファイルを作成する</a></li><li><a href="#toc15" tabindex="0">STEP 5：WordPressの記事を取得する</a><ol><li><a href="#toc16" tabindex="0">実行時の画面例</a></li></ol></li><li><a href="#toc17" tabindex="0">STEP 6：Noteへ投稿する</a><ol><li><a href="#toc18" tabindex="0">投稿モードについて</a></li></ol></li><li><a href="#toc19" tabindex="0">STEP 7：下書きをまとめて公開する（draft利用時）</a><ol><li><a href="#toc20" tabindex="0">実行時の画面例</a></li></ol></li><li><a href="#toc21" tabindex="0">アイキャッチ画像をまとめて設定する（オプション）</a></li><li><a href="#toc22" tabindex="0">途中で止まってしまった場合の再開方法</a></li><li><a href="#toc23" tabindex="0">初めて使うときのおすすめ手順</a></li></ol></li><li><a href="#toc24" tabindex="0">トラブルシューティング（よくある問題と対応）</a></li><li><a href="#toc25" tabindex="0">開発プロセス：AI（Claude）との共同作業について</a></li><li><a href="#toc26" tabindex="0">結論</a></li><li><a href="#toc27" tabindex="0">よくある質問</a><ol><li><a href="#toc28" tabindex="0">Q. Nodeのバージョンは何が良いですか？</a></li><li><a href="#toc29" tabindex="0">Q. Noteの二段階認証がある場合はどうすればいいですか？</a></li><li><a href="#toc30" tabindex="0">Q. 途中で止まったらどうやって再開しますか？</a></li><li><a href="#toc31" tabindex="0">Q. アイキャッチ画像が設定されない記事があるのはなぜですか？</a></li><li><a href="#toc32" tabindex="0">Q. Note側のUI変更でエラーが出た場合は？</a></li></ol></li></ol>
    </div>
  </div>

<h2><span id="toc1">なぜ作ったか — 感情と実務の両面から</span></h2>
<p>単純に時間が足りなかった、というのが最初の動機です。1記事をNoteに移す作業は次のような手順が必要で、これを200回繰り返すと単純作業だけで数十時間になります。</p>
<ul>
<li>WordPress管理画面で記事をコピー</li>
<li>Noteエディタで貼り付け、タイトル入力</li>
<li>アイキャッチ画像をダウンロードしてアップロード</li>
<li>ハッシュタグ設定、公開設定</li>
</ul>
<p>この繰り返しはADHDの「実行が続かない」「決断疲れ」を加速させます。私はまず少数を手で移してみて、すぐに挫折しました。そこで「自動化すれば衝動で始めても、途中で止まっても再開できるはず」と考え、短いハイパーフォーカスタイムを利用して開発を始めました。</p>


<p class="wp-block-paragraph">「これは絶対に自動化できるはずだ」と思い、このツールを作り始めました。</p>



<div>
<div><strong>結果として、**200記事の移行がコマンド操作3回で完了**するツールができあがりました。</strong></div>
</div>


<!-- WordPress用HTML完成版：WordPressからNoteへ自動移行ツール -->

<p>例えば、手作業で1記事5分かかると仮定すると、200記事で約16〜17時間。ツール化でこの時間が数十分に短縮されます。</p>

<h2><span id="toc2">実現できること（概要）</span></h2>

<p>次の目的を自動化します。まずは目的をはっきりさせ、どこまで自分で確認すべきかを判断してください。以下は「何が自動化されるか」を一覧にしたものです。</p>

<div class="box3">
<p><strong>このツールで自動化できること</strong></p>
<ul>
<li>WordPressから記事データの一括取得（テキストファイル化）</li>
<li>Noteへの自動ログインと記事の自動入力</li>
<li>タイトル・本文・ハッシュタグの自動設定</li>
<li>下書き保存または即時公開の選択</li>
<li>下書きから一括公開</li>
<li>WordPressのアイキャッチ画像をNoteへ自動アップロード</li>
<li>途中で止まっても、止まった場所から再開可能</li>
</ul>
</div>

<div class="information-box">
<p><strong>実務的な判断例</strong></p>
<p>最初は必ず <code>NOTE_PUBLISH_MODE</code> を <code>draft</code> にして、数記事を確認してから一括公開するのがおすすめです。これにより、衝動的に全公開してしまうリスクを防げます。</p>
</div>

<h2><span id="toc3">どんな仕組みか（アーキテクチャ）</span></h2>

<p>ツールは4つのステップに分かれ、順に実行します。技術的にはNode.jsで書かれ、ブラウザ自動操作にはPlaywrightを使用しています。人がブラウザでクリックや入力する代わりにプログラムが同じ操作を再現します。</p>

<div class="box3">
<p><strong>このツールは4つの部品に分かれていて、順番に実行していきます。</strong></p>
<ol>
<li>STEP 1：WordPress記事の取り出し</li>
<li>STEP 2：Noteへの自動投稿</li>
<li>STEP 3：下書きの一括公開</li>
<li>STEP 4：アイキャッチ画像の設定</li>
</ol>
</div>

<h3><span id="toc4">STEP 1：WordPress記事の取り出し</span></h3>
<p>WordPressのAPIを通じて記事データをすべて取り出し、テキストファイルに変換して保存します。</p>

<h3><span id="toc5">STEP 2：Noteへの自動投稿</span></h3>
<p>ブラウザを自動で操作して、テキストファイルを1件ずつNoteのエディタに入力して保存します。</p>

<h3><span id="toc6">STEP 3：下書きの一括公開</span></h3>
<p>Noteの下書き一覧を自動で開き、ハッシュタグを設定してから順番に公開していきます。</p>

<h3><span id="toc7">STEP 4：アイキャッチ画像の設定</span></h3>
<p>WordPressのアイキャッチ画像をダウンロードしてNoteの各記事にアップロードします。</p>

<div class="information-box">
<p><strong>エンジニア向け実例</strong></p>
<p>途中で停止した場合は progress ファイル（note-post-progress.txt）に処理済み番号が保存されるため、startFrom にその番号を入れて再開できます。これは「シンプルなチェックポイント」を導入した設計決定で、開発時に何度も助けられました。</p>
</div>

<h2><span id="toc8">動作環境とソース</span></h2>

<p>このツールは以下の環境で動作確認済みです。</p>

<ul>
<li>macOS 12 以上（推奨）</li>
<li>Windows 10 / 11</li>
</ul>

<p>ソースコードはGitHubで公開しています。自由にクローンしてカスタマイズしてください。</p>

<div class="box3">
<p><strong>GitHubリポジトリ</strong></p>

<a rel="noopener" href="https://github.com/atueda/NoteWordpress" title="GitHub - atueda/NoteWordpress" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img data-recalc-dims="1" decoding="async" src="https://i0.wp.com/atueda.com/wp-content/uploads/cocoon-resources/blog-card-cache/04703a85a6fa4af7310f767467a6d23a.jpg?resize=320%2C180&#038;ssl=1" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">GitHub - atueda/NoteWordpress</div><div class="blogcard-snippet external-blogcard-snippet">Contribute to atueda/NoteWordpress development by creating an account on GitHub.</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img decoding="async" src="https://www.google.com/s2/favicons?domain=https://github.com/atueda/NoteWordpress" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">github.com</div></div></div></div></a>
</div>

<h2><span id="toc9">使い方：STEP 0〜7（実行手順）</span></h2>

<p>ここからは実際に使う手順を順番に説明します。エンジニアとしては「まず環境整備→検証→本番」の流れを守ると精神的負担が減ります。</p>

<h3><span id="toc10">STEP 0：Node.jsをインストールする</span></h3>

<p>まずターミナルでバージョン確認します。</p>

<pre><code class="language-bash">node -v
</code></pre>

<p>例：<code>v22.0.0</code> のように表示されればOK。未インストールなら公式サイトからインストーラーを入手してください。</p>


<a rel="noopener" href="https://nodejs.org/" title="Node.js ??? Run JavaScript Everywhere" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img loading="lazy" decoding="async" src="https://atueda.com/wp-content/uploads/cocoon-resources/blog-card-cache/50d664c97667f43ef759b42a0fcff318.js%20%e2%80%94%20run%20javascript%20everywhere" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="320" height="180" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">Node.js ??? Run JavaScript Everywhere</div><div class="blogcard-snippet external-blogcard-snippet">Node.js?? is a free, open-source, cross-platform JavaScript runtime environment that lets developers create servers, web...</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://nodejs.org/" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">nodejs.org</div></div></div></div></a>

<div class="information-box">
<p><strong>実例</strong></p>
<p>私の環境では v18 と v22 を切り替える必要があったため、nvm を使ってバージョン管理しました。ADHDの「切り替えの衝動」が出やすい方は1つの安定バージョンに固定するのが楽です。</p>
</div>

<h3><span id="toc11">STEP 1：ツールをダウンロードする</span></h3>

<p>GitHubからZIPでダウンロード、または git clone で取得します。</p>

<pre><code class="language-bash">git clone https://github.com/atueda/NoteWordpress.git
</code></pre>

<h3><span id="toc12">STEP 2：フォルダを開く</span></h3>

<p>ターミナルでツールのフォルダへ移動します。</p>

<pre><code class="language-bash">cd ~/Downloads/wp-to-note
</code></pre>

<h3><span id="toc13">STEP 3：必要なソフトをインストールする</span></h3>

<p>初回のみ実行します。</p>

<pre><code class="language-bash">npm install
npx playwright install chromium
</code></pre>

<p>これで依存パッケージとChromiumがインストールされます。</p>

<div class="box3">
<ul>
<li><code>npm install</code>：ツールが動くための部品を揃えます</li>
<li><code>npx playwright install chromium</code>：ブラウザ自動操作に使うChromiumをインストールします</li>
</ul>
</div>

<h3><span id="toc14">STEP 4：設定ファイルを作成する</span></h3>

<p>プロジェクトフォルダに <code>.env</code> を作成し、以下を記述します（例は抜粋）。</p>

<pre><code class="language-ini"># WordPress 設定
WP_URL=https://あなたのWordPressサイトのURL
WP_PER_PAGE=20
WP_MAX_PAGES=11
WP_OUTPUT_DIR=./note-export

# Note 設定
NOTE_EMAIL=あなたのNoteのメールアドレス
NOTE_PASSWORD=あなたのNoteのパスワード
NOTE_TAGS=タグ1,タグ2,タグ3
NOTE_PUBLISH_MODE=draft
</code></pre>

<p>説明：<code>NOTE_PUBLISH_MODE</code> を <code>draft</code> にすれば一旦下書き保存されるため、安全です。公開モードは <code>publish</code>。</p>

<table style="border-collapse: collapse; width: 100%;">
<thead>
<tr>
<th style="border: 1px solid #ddd; padding: 8px;">項目</th>
<th style="border: 1px solid #ddd; padding: 8px;">説明</th>
<th style="border: 1px solid #ddd; padding: 8px;">入力例</th>
</tr>
</thead>
<tbody>
<tr>
<td style="border: 1px solid #ddd; padding: 8px;"><code>WP_URL</code></td>
<td style="border: 1px solid #ddd; padding: 8px;">WordPressサイトのURL（末尾の「/」は不要）</td>
<td style="border: 1px solid #ddd; padding: 8px;"><code>https://example.com</code></td>
</tr>
<tr>
<td style="border: 1px solid #ddd; padding: 8px;"><code>WP_PER_PAGE</code></td>
<td style="border: 1px solid #ddd; padding: 8px;">1回に取得する記事の件数（最大100）</td>
<td style="border: 1px solid #ddd; padding: 8px;"><code>20</code></td>
</tr>
<tr>
<td style="border: 1px solid #ddd; padding: 8px;"><code>WP_MAX_PAGES</code></td>
<td style="border: 1px solid #ddd; padding: 8px;">取得するページ数（件数×ページ数が最大取得数）</td>
<td style="border: 1px solid #ddd; padding: 8px;"><code>11</code></td>
</tr>
<tr>
<td style="border: 1px solid #ddd; padding: 8px;"><code>WP_OUTPUT_DIR</code></td>
<td style="border: 1px solid #ddd; padding: 8px;">変換したテキストファイルの保存先</td>
<td style="border: 1px solid #ddd; padding: 8px;"><code>./note-export</code></td>
</tr>
<tr>
<td style="border: 1px solid #ddd; padding: 8px;"><code>NOTE_EMAIL</code></td>
<td style="border: 1px solid #ddd; padding: 8px;">Noteのメールアドレス</td>
<td style="border: 1px solid #ddd; padding: 8px;"><code>you@example.com</code></td>
</tr>
<tr>
<td style="border: 1px solid #ddd; padding: 8px;"><code>NOTE_PASSWORD</code></td>
<td style="border: 1px solid #ddd; padding: 8px;">Noteのパスワード</td>
<td style="border: 1px solid #ddd; padding: 8px;"></td>
</tr>
<tr>
<td style="border: 1px solid #ddd; padding: 8px;"><code>NOTE_TAGS</code></td>
<td style="border: 1px solid #ddd; padding: 8px;">投稿時のタグ（複数の場合はカンマで区切る）</td>
<td style="border: 1px solid #ddd; padding: 8px;"><code>ADHD,大人の発達障害</code></td>
</tr>
<tr>
<td style="border: 1px solid #ddd; padding: 8px;"><code>NOTE_PUBLISH_MODE</code></td>
<td style="border: 1px solid #ddd; padding: 8px;"><code>draft</code>=下書き保存 / <code>publish</code>=即公開</td>
<td style="border: 1px solid #ddd; padding: 8px;"><code>draft</code></td>
</tr>
</tbody>
</table>

<h3><span id="toc15">STEP 5：WordPressの記事を取得する</span></h3>

<p>記事ファイルを生成します。</p>

<pre><code class="language-bash">node wp-to-note.js
</code></pre>

<p>完了すると note-export フォルダに記事ごとのテキストファイルと _index.txt が生成されます。開発時のチェックポイントとして、まずは2〜3件だけ確認する習慣をつけるとよいです。</p>

<h4><span id="toc16">実行時の画面例</span></h4>

<pre><code class="language-text">=== WordPress → Note 移行スクリプト ===
対象サイト: https://example.com
出力先: ./note-export/
記事を取得中...
ページ 1 を取得中... 20件取得
ページ 2 を取得中... 20件取得
ページ 3 を取得中... 20件取得
...
合計 205 件取得完了
ファイルを生成中...
[1/205] 001_記事タイトルの例.txt
[2/205] 002_別の記事タイトル.txt
...
✓ 完了！ 205 記事を取り出しました
</code></pre>

<h3><span id="toc17">STEP 6：Noteへ投稿する</span></h3>

<p>実行するとブラウザが起動します。</p>

<pre><code class="language-bash">node note-auto-post.js
</code></pre>

<div class="warning-box">
<p><strong>初回は手動ログインが必要です</strong></p>
<p>初回は手動ログインが必要です（セッションが保存され、次回以降は省略されます）。途中で止まった場合は note-post-progress.txt を参照し、startFrom を設定して再実行してください。</p>
</div>

<h4><span id="toc18">投稿モードについて</span></h4>

<p>設定ファイルの <code>NOTE_PUBLISH_MODE</code> を変えることで、投稿時の動作が変わります。</p>

<table style="border-collapse: collapse; width: 100%;">
<thead>
<tr>
<th style="border: 1px solid #ddd; padding: 8px;">モード</th>
<th style="border: 1px solid #ddd; padding: 8px;">設定値</th>
<th style="border: 1px solid #ddd; padding: 8px;">動作</th>
</tr>
</thead>
<tbody>
<tr>
<td style="border: 1px solid #ddd; padding: 8px;">下書き保存</td>
<td style="border: 1px solid #ddd; padding: 8px;"><code>draft</code></td>
<td style="border: 1px solid #ddd; padding: 8px;">記事はNoteに保存されますが、公開されません。内容を確認してから公開できます。</td>
</tr>
<tr>
<td style="border: 1px solid #ddd; padding: 8px;">自動公開</td>
<td style="border: 1px solid #ddd; padding: 8px;"><code>publish</code></td>
<td style="border: 1px solid #ddd; padding: 8px;">投稿後すぐ公開されます。確認なしでそのまま公開されます。</td>
</tr>
</tbody>
</table>

<div class="information-box">
<p>最初は <code>NOTE_PUBLISH_MODE=draft</code> にして、2〜5記事で動作確認。その後、全件実行で安心できます。</p>
</div>

<h3><span id="toc19">STEP 7：下書きをまとめて公開する（draft利用時）</span></h3>

<p><code>NOTE_PUBLISH_MODE=draft</code> を利用した場合のみ実行します。</p>

<pre><code class="language-bash">node note-publish-one.js
</code></pre>

<p>この処理を行うと「下書きを探す → ハッシュタグを設定する → 公開する」を自動で繰り返します。Note上にある全ての下書き記事が公開されるまで処理が続きます。</p>

<h4><span id="toc20">実行時の画面例</span></h4>

<pre><code class="language-text">公開処理 1 件目
下書き記事を発見しました
ハッシュタグを設定しています... #ADHD #大人の発達障害
公開しました
累計: 1 件公開
公開処理 2 件目
...
完了: 205 件公開しました
</code></pre>

<h3><span id="toc21">アイキャッチ画像をまとめて設定する（オプション）</span></h3>

<p>WordPressの画像をNoteに反映する場合：</p>

<pre><code class="language-bash">node note-set-eyecatch.js
</code></pre>

<p>STEP 5で取り出した記事のURLをもとに、WordPressのアイキャッチ画像を探してNoteにアップロードします。すでに画像が設定済みの記事はスキップされます。</p>

<h3><span id="toc22">途中で止まってしまった場合の再開方法</span></h3>

<div class="warning-box">
<p>STEP 6の途中で止まった場合は、<code>note-post-progress.txt</code> というファイルに「何番まで処理したか」が記録されています。</p>
<p>ファイルを開いて数字を確認し（例：「51」と書いてあった場合）、プログラムファイル <code>note-auto-post.js</code> 内の <code>startFrom</code> という部分を <code>51</code> に書き換えてから再実行してください。</p>
</div>

<h3><span id="toc23">初めて使うときのおすすめ手順</span></h3>

<p>いきなり全記事を公開するのではなく、まず少数で試してみることをおすすめします。</p>

<ol>
<li><code>NOTE_PUBLISH_MODE=draft</code>（下書き保存）に設定する</li>
<li><code>node wp-to-note.js</code> でWordPressの記事を取得する</li>
<li><code>note-export</code> フォルダのテキストファイルを数件確認する</li>
<li><code>node note-auto-post.js</code> で下書きとして一括投稿する</li>
<li>Noteの管理画面でいくつか内容を確認する</li>
<li>問題がなければ <code>node note-publish-one.js</code> で一括公開する</li>
<li><code>node note-set-eyecatch.js</code> でアイキャッチ画像を設定する</li>
</ol>

<div class="information-box">
<p>この方法が最も安全です。</p>
</div>

<h2><span id="toc24">トラブルシューティング（よくある問題と対応）</span></h2>

<p>現場で実際に起きた問題と対処法を記します。まずは落ち着いてログを読み、progress ファイルを確認する習慣をつけるとADHDの「焦って間違える」状況を防げます。</p>

<div class="box3">
<ul>
<li>「投稿に失敗しました。しばらく時間をあけて&#8230;」：Note側のアクセス制限。30分〜3時間待って再実行。再開は note-post-progress.txt の番号を startFrom に入力。</li>
<li>ブラウザがログイン画面から進まない：Noteの二段階認証が有効な可能性。手動でログインしてセッションを保存する。</li>
<li>node コマンドが見つからない：Node.js未インストール。公式サイトからインストール。</li>
<li>フォルダが見つからない：STEP 5 をまだ実行していない可能性。手順は順番に実行。</li>
<li>ボタンが見つからないエラー：Note側のUI変更。GitHubで最新版を確認して更新する。</li>
<li>連続エラーが3件発生して停止：ターミナルに再開番号が表示されるので startFrom に入れて再実行。</li>
</ul>
</div>

<div class="information-box">
<p><strong>実例</strong></p>
<p>あるとき3回連続でアクセス制限にかかり停止しました。ログの指示通り startFrom を51 に設定し、待機30分後に再実行して無事再開できました。</p>
</div>

<h2><span id="toc25">開発プロセス：AI（Claude）との共同作業について</span></h2>

<p>このツールはAIアシスタント（Claude）と対話しながら開発しました。要件を日本語で伝えることで、実際のコード生成や設計決定を補助してもらえました。私の経験から言うと、AIは「小さな反復的タスク」を素早くコード化してくれるため、ADHDの衝動的なやる気を短時間で形にするのに向いています。ただし、最終的なテストと例外処理は自分で確認する必要があります。</p>

<h2><span id="toc26">結論</span></h2>

<p>手作業で200記事を移行するのは心身ともに負担が大きいです。自動移行ツールを使えば、記事取得→投稿→公開→アイキャッチ設定を効率化でき、精神的負荷も大幅に軽減できます。まずは小さく試し、問題がなければ本番で一気に移行するのがおすすめです。</p>

<h2><span id="toc27">よくある質問</span></h2>

<h3><span id="toc28">Q. Nodeのバージョンは何が良いですか？</span></h3>
<p>安定版（LTS）を推奨します。開発・本番で差異が出るとトラブルの元なので、nvm 等で固定してください。</p>

<h3><span id="toc29">Q. Noteの二段階認証がある場合はどうすればいいですか？</span></h3>
<p>初回実行時に手動でログインして二段階認証を完了してください。一度セッション保存されれば次回は自動化できます。</p>

<h3><span id="toc30">Q. 途中で止まったらどうやって再開しますか？</span></h3>
<p>note-post-progress.txt を確認し、表示された番号を note-auto-post.js の startFrom に設定して再実行してください。</p>

<h3><span id="toc31">Q. アイキャッチ画像が設定されない記事があるのはなぜですか？</span></h3>
<p>WordPress側にアイキャッチが設定されていない場合はスキップされます。手動で差分を補完してください。</p>

<h3><span id="toc32">Q. Note側のUI変更でエラーが出た場合は？</span></h3>
<p>まず GitHub の最新版に更新してください。UIが変わるとボタン位置などがずれるため、スクリプトの修正が必要です。</p>

<p>ここまで読んでいただきありがとうございます。まずは少数の記事で試し、動作を確認してから全件移行することを強くおすすめします。</p><p>投稿 <a href="https://atueda.com/wordpress%e3%81%8b%e3%82%89note%e3%81%b8%e8%87%aa%e5%8b%95%e7%a7%bb%e8%a1%8c%e3%83%84%e3%83%bc%e3%83%ab%e5%ae%8c%e5%85%a8%e3%82%ac%e3%82%a4%e3%83%89/">WordPressからNoteへ自動移行ツール完全ガイド</a> は <a href="https://atueda.com">ADHDエンジニア成長日記 ― 障害を抱えながらIT業界で活躍するためのブログ</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://atueda.com/wordpress%e3%81%8b%e3%82%89note%e3%81%b8%e8%87%aa%e5%8b%95%e7%a7%bb%e8%a1%8c%e3%83%84%e3%83%bc%e3%83%ab%e5%ae%8c%e5%85%a8%e3%82%ac%e3%82%a4%e3%83%89/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1905</post-id>	</item>
	</channel>
</rss>
