WordPressの全記事URLを一括取得する方法まとめ🔎✨(サイトマップ/WP-CLI/REST API/DB)

WordPressを運用していると、「全記事のURLを一覧でほしい!」って場面がよくありますよね💡
たとえば…

  • リライト計画でURLリストが必要📝
  • サーチコンソールやGA4で突き合わせたい📊
  • 404チェック・リンク切れチェックをしたい🔧
  • 記事移行やバックアップ前に棚卸ししたい🚚

この記事では、手軽さ順に「WordPressの全記事URLを取得する方法」を整理して、コピペで使える形までまとめます✅

✅おすすめ書籍(PR)
WordPressの「URL一括取得」や「REST API・プラグイン活用」をもう一歩深掘りしたい人向けに、手元にあると便利な1冊です📘✨


✅ 結論:目的別おすすめ早見表(最短で選べる)

  • 一番カンタン:サイトマップから抜く(公開URL中心)🗺️
  • 確実&最強:WP-CLIで一括出力(サーバー触れるなら最推し)💪
  • 自動化したい:REST APIでJSON取得(スクリプト向き)🤖
  • 最終手段:DBから直取得(下書き/非公開も含めやすい)🧠

方法1:サイトマップからURLを抽出する🗺️(最速・ログイン不要)

こんな人におすすめ

  • 公開記事のURLだけでOK
  • とにかく早く一覧が欲しい

手順

  1. ブラウザで次を開く
    https://あなたのドメイン/wp-sitemap.xml
  2. 「投稿用」のサイトマップを探す
    例:wp-sitemap-posts-post-1.xml など
  3. XML内の <loc>ここがURL</loc> をコピーして抽出✨

SEOプラグインを使っている場合は、サイトマップURLが
sitemap_index.xmlsitemap.xml になっていることもあります📌

メリット/注意点

  • ✅ 超早い・簡単
  • ⚠️ noindex設定除外設定しているURLは出ないことがある

方法2:管理画面の「エクスポート」機能で取得する📤(標準機能だけ)

こんな人におすすめ

  • プラグインなし&サーバー作業なしで進めたい
  • WordPress標準機能で完結したい

手順

  1. 管理画面 → ツールエクスポート
  2. 「投稿」など対象を選んでエクスポート(XML)
  3. XML内の情報(スラッグ等)からURLを組み立てる

メリット/注意点

  • ✅ 標準機能だけで可能
  • ⚠️ URLそのものが“一覧でズラッと出る”形ではないので加工が必要

方法3:WP-CLIで全記事URLを一括出力する💪(一番おすすめ)

こんな人におすすめ

  • サーバーにSSHできる
  • 公開・下書き・非公開など条件を指定して確実に取りたい
  • 大量記事でも高速で出力したい

投稿(post)のURL一覧(公開のみ)

wp post list --post_type=post --post_status=publish --fields=ID --format=csv \
| tail -n +2 \
| xargs -I{} wp post url {} \
> post_urls.txt

固定ページ(page)のURL一覧(公開のみ)

wp post list --post_type=page --post_status=publish --fields=ID --format=csv \
| tail -n +2 \
| xargs -I{} wp post url {} \
> page_urls.txt

全部まとめて(公開のみ)

wp post list --post_type=any --post_status=publish --fields=ID --format=csv \
| tail -n +2 \
| xargs -I{} wp post url {} \
> all_urls.txt

✅ WP-CLIの強み

  • post_type / post_status を細かく指定できる
  • 記事数が多くても安定して出力できる
  • 「一覧→CSV化→自動処理」につなげやすい

URLの一括取得を“確実&高速”にやるなら、WP-CLIが使える環境が強いです。SSHが使えるサーバーだと作業が一気にラクになります👇


方法4:WordPress REST APIで全URLを取得する🤖(自動化向き)

こんな人におすすめ

  • PowerShell / Pythonで自動化したい
  • 公開記事URLを定期的に取得したい

まずは1ページ目(最大100件)

https://あなたのドメイン/wp-json/wp/v2/posts?per_page=100&page=1&_fields=link
  • per_page は最大100
  • page=1,2,3... と増やして全件回収します📦
  • 返ってくるJSONの各要素に link が入っています

注意点

  • ✅ 公開記事は取りやすい
  • ⚠️ 下書き/非公開を取るには認証が必要(運用や権限に注意)

方法5:DBから直で抜く🧠(最終手段・柔軟だが要注意)

こんな人におすすめ

  • 下書き/非公開も含めて棚卸ししたい
  • パーマリンク構造を理解して組み立てできる

例:公開投稿のスラッグ一覧

SELECT post_name
FROM wp_posts
WHERE post_type='post'
  AND post_status='publish';

注意点(重要)

  • DB操作はミスると危険⚠️
  • バックアップを取ってからが鉄則です💾

✅ よくある使い分け(あなたに合う方法はこれ!)

公開URLだけほしい場合

  • サイトマップ or REST API

公開/下書き/非公開も含めて棚卸ししたい場合

  • WP-CLI(できるなら最優先)
  • それが無理なら DB

自動化・定期取得したい場合

  • REST API(スクリプト向き)
  • サーバー側まで触れるなら WP-CLI が安定

FAQ(よくある質問)❓✨

Q1. 公開してない記事(下書き/非公開)もURLとして取れる?📝

取れます✅
ただし、サイトマップやREST API(未認証)では出ないことが多いので、WP-CLIDBが確実です。

Q2. 記事数が数千件あるけど大丈夫?📚

サイトマップやREST APIでも可能ですが、安定性なら WP-CLI が強いです💪
(特に処理速度と落ちにくさ)

Q3. サイトマップに一部URLが出てこないのはなぜ?🗺️

noindex設定、除外設定、SEOプラグインのサイトマップ設定などが原因になりがちです⚙️

Q4. URLリストはCSVにできる?📄

できます✅
WP-CLIなら all_urls.txt をそのままCSVの1列にしてもOKですし、REST APIなら link だけ抽出してCSV化できます。

Q5. どれが一番「安全」?🔐

作業の安全性だけで言うと、サイトマップが最も安全です。
ただし、網羅性まで求めるなら WP-CLI(バックアップ前提)が最適です💡


まとめ✅(迷ったらこれ)

  • 今すぐ公開URL一覧だけほしい → サイトマップ🗺️
  • 全部のURLを確実に・高速にほしい → WP-CLI💪
  • 自動化したい → REST API🤖
  • 下書き/非公開含めた完全棚卸し → DB🧠(バックアップ必須)
あざらし

はじめまして、あざらしです。 フリーターからエンジニア会社へ就職し、 現在はフリーランスのシステムエンジニアとして働いています。 本業のエンジニア業のかたわら、 ✍️ ブログ運営 と「収入の柱を増やす挑戦」を少しずつ続けています。 フリーター時代から比べると、 段階的に収入が増えていくのを実感できるのが素直にうれしい今日この頃。 このブログでは、日々の気づき・体験談 IT・ガジェット・ゲーム系の話 「調べて分かったこと」を噛み砕いた解説 などを中心に、ジャンルに縛られない雑記ブログとして発信しています。 「自分と同じように悩んでいる人のヒントになればいいな」 そんな気持ちで更新中です。 👉 プロフィール詳細は、名前「あざらし」をクリックしてください