Google XML Sitemapsなどのsitemapを作成するプラグインを使用していることが前提になりますが、sitemap.xmlから以下の方法で取得できそうです。
Google XML Sitemapsプラグインの「Sitemap コンテンツ」設定の選択によりsitemapへ出力される内容が変わるので、プラグインの設定により出力結果が変わります。月別アーカイブなどのページが取得できなかったので、完全に動的な場合は対応出来ないかもしれません。
実現できるかの確認なのでエラー処理などは省略しています。
php
1<?php
2
3function get_page_list( $sitemap_url, &$urls = null ) {
4 $sitemap = simplexml_load_file( $sitemap_url );
5
6 if ($urls === null) {
7 $urls = array();
8 }
9
10 foreach ( $sitemap->sitemap as $url ) {
11 $url = get_object_vars( $url )['loc'];
12 get_page_list( $url, $urls );
13 }
14 foreach ( $sitemap->url as $page ) {
15 $page_info = get_object_vars( $page );
16 $urls[] = urldecode( $page_info['loc'] );
17 }
18
19 return $urls;
20}
21
22# 一覧を取得するページのsitemap.xmlへのurlを指定
23# 結果は文字列配列で返されます
24$urls = get_page_list( 'http://example.com/sitemap.xml' );
25foreach ( $urls as $url ) {
26 echo $url . PHP_EOL;
27}