Felipeの提案を出発点として使用して、私が最終的に行ったことは次のとおりです。これを行うためのより複雑な方法があるかもしれませんが、私が言ったように、私はただの初心者なので、これが私が思いついたものです:
最初に、現在のボリューム番号を追跡する volnum 変数を作成しました。次に、フロント ページをキャッシュして、後で独立した HTML ドキュメントとして保存できるようにします。これは、get_header() の前の index.php の先頭にあります。
<?php $volnum; ?>
<?php ob_start(); ?>
最初のページには社説があり、その隣には目次があります。エディトリアル タグ (常に「voln」で、「n」はボリューム番号) のボリューム番号を保存しています (エディトリアルにはタグが 1 つしかないため、おそらく foreach は必要ありません)。
<?php $tags = get_the_tags();
foreach ($tags as $tag){
$volnum = $tag->name;
}
?>
最後に、ドキュメントの最後の html の後に、次のコードを追加しました。
<?php
$handle = opendir("past_vol/");
$numOfFiles = count($handle);
$volExists = false;
for($i=0;$i<=$numOfFiles;$i++){
$name = readdir($handle);
if($volnum.".html" == ($name)){
$volExists = true;
continue;
}
}
if($volExists == false){
$cachefile = "past_vol/".$volnum.".html";
$fp = fopen($cachefile, 'w');
fwrite($fp, ob_get_contents());
fclose($fp);
}
closedir($handle);
ob_end_flush();
?>
「past_vol」は過去の巻のhtmlファイルを保存しているディレクトリです。そのため、ディレクトリが開かれ、ファイルの量がカウントされ、各ファイルの名前を通過するループが開始されます。$volnum と同じ名前のファイルの場合、$volExists は true です。ループの最後で $volExists が false の場合、キャッシュされたページが保存されます。
繰り返しますが、おそらくかなり最適化される可能性がありますが、今のところこれでうまくいきます!