PowerCMSでサイト構築をしていた際、ブログ記事更新時にトップページを再構築したいということがあったので、対応方法をメモしておきます。
設定方法
今回は子サイト(ブログ)に記事を投稿した際に、親サイトのインデックステンプレートで作成しているトップページが再構築されるように設定してみます。
まずは親サイトのトップページのテンプレート内に、子サイトのブログ一覧を表示するようにします。
<mt:Entries include_blogs="XXXX" lastn="5"> <div class="item"> <h2 class="title"> <a href="<mt:EntryPermalink>"><mt:EntryTitle></a> </h2> </div> </mt:Entries>
これでトップページに子サイトのブログ記事一覧が表示されるようになりましたが、ブログ記事を新しく投稿してもトップページに反映されないため、再構築を実行する必要があります。
方法はいくつかあるようですが、今回はmt:RebuildBlogを使った方法を試してみます。
ブログ記事を公開時に再構築されるテンプレート(今回は子サイトのインデックステンプレートにブログ一覧ページがあったので、そちらを使用しました)に、下記タグを追加します。
<$MTRebuildBlog blog_id="XXXX" archivetype="index"$>
blog_idに再構築を行うブログID(今回の場合は親サイトのID)を、archivetypeには再構築を行うテンプレートの種類を設定します。
これでブログ記事を投稿するとトップページも再構築が行われるようになりました。
コメントが承認されるまで時間がかかります。