WordPressの記事URL一覧を取得する方法【リスト】

WordPressの記事URLの一覧を取得する方法はいくつかありますが、Yoastのサイトマップからコピーするのが簡単です。MySQL、プラグイン、PHPの方法も紹介します。Webマスターツールへの登録、URLの一括変更などのご参考にどうぞ。
Welcome
  • Yoastが生成するサイトマップURLからの取得が簡単
  • 記事タイトルなどと関連付けたい場合はMySQL
  • プラグインやPHPで取得することも可

方法1:Yoastのsitemapから記事URL一覧を取得する

WordPressのプラグイン「Yoast SEO」をインストールし、XMLサイトマップ機能をONにします。

すると、「https://URL/sitemap_index.xml」という場所に、xml形式のサイトマップができます。


そして、リンクを辿ると、以下のようにURLの一覧が出てきます。

これをコピー&ペーストするのが一番簡単だと思います。

方法2:MySQLで記事URL一覧を取得する

URLと記事のタイトルなどの情報を併せて出力したい場合には、MySQLから取得するといいと思います。wp_postテーブル(マルチサイトの場合は、wp_番号_テーブル)に必要な情報が入っていますのでSQL文で出力します。

select guid,post_name,post_title from wp_posts where ( post_type = ('post' or 'page') and post_status = 'publish');

例えば、phpMyAdminでは以下のようにSQLクエリを入力します。

すると、出力結果は以下のようになります。

WordPressのデータベース内に保存されているURLは「?p=番号」で始まる形式ですので、表示用URLが必要な場合は、Excel等でpost_nameを補い、再生成するといいと思います。

方法3:プラグインで記事URL一覧を取得する

WordPressには、記事リストを出力するプラグインがあります。このようなプラグインを利用するのも1つの方法です。

List URLs

Export All URLs

方法4:PHPで記事URL一覧を取得する

以下のようなコードのPHPファイルを作ります。そして、WebサーバのルートディレクトリにPHPを置き、Webブラウザからアクセスします。

<?php
 
include "wp-load.php";
 
$posts = new WP_Query('post_type=any&posts_per_page=-1&post_status=publish');
$posts = $posts->posts;
 
header('Content-type:text/plain');
foreach($posts as $post) {
    switch ($post->post_type) {
        case 'revision':
        case 'nav_menu_item':
            break;
        case 'page':
            $permalink = get_page_link($post->ID);
            break;
        case 'post':
            $permalink = get_permalink($post->ID);
            break;
        case 'attachment':
            $permalink = get_attachment_link($post->ID);
            break;
        default:
            $permalink = get_post_permalink($post->ID);
            break;
    }
    echo "\n{$permalink}";
  //echo "\n{$post->post_type}\t{$permalink}\t{$post->post_title}";
}
?>

技巧的なテクニックです。詳細は以下のサイトをご覧ください。
参考:How to Get a List of All WordPress Post URLs by BLOGGERSIGNAL

まとめ

GoogleウェブマスターツールにURLを連投する際に、どうしようと思ったらこの方法に辿り着きました。おそらくYoastかMySQLで事足りるかと思います。もし、頻繁に利用するようでしたら、プラグインやPHPの力に頼るといいと思います。ぜひ、効率的な管理にお役立てください。