これには複数の方法があります。
XML サイトマップまたはリンクの配列からサイト上のすべての URL を呼び出し、関数を使用してレンダリングされた HTML をダウンロードするスタンドアロンの PHP アプリケーションを作成できます(こちらfile_get_contents()
のドキュメントを参照)。これに沿ったもの(次のコードはテストされていません):
// [filename] => [URL]
$pages = array(
'index.html' => 'https://example.com/',
'contact.html' => 'https://example.com/contact.html',
);
foreach($pages as $filename => $link){
$filePath = $_SERVER['DOCUMENT_ROOT'].'/'.$filename;
$html= file_get_contents($link);
$handle = fopen($filePath,"w");
fwrite($handle,$html);
fclose($handle);
}
または、MODX 内にスニペットを記述し、xPDOを使用してリソース URL を直接取得することもできます。次のコードは、すべてのリソースのリンクとファイル名を取得し、その過程で Web リンク、シンボリック リンク、および静的リソースを除外します。パッケージ内に次のコードを実装する予定がある場合は、少し調整する必要があります。
$resources = $modx->getIterator('modResource', array(
'class_key' => 'modDocument',
));
$pages = array();
foreach($resources as $resource){
$pages[$resource->get('alias').'.html'] = $modx->makeUrl($resource->get('id'), '', '', 'full');
}
上記のコードの配列の出力は$pages
次のようになります。
Array
(
[index.html] => https://example.com/
[test.html] => https://example.com/test.html
)