Movable Typeで記事に対する再構築トリガーについて調べる機会があったのでメモ。
今回の検証内容
再構築トリガーで「記事/ウェブページ」を選択した際、トリガーとして「保存」「公開」「公開取り消し」の3つが選べます。
今回はそれぞれのトリガーが「記事公開」「公開記事を修正」「公開記事を未公開に変更」「公開記事を削除」した時に再構築されるかを試してみます。
再構築の確認用に、親サイトのテンプレートでニュースという名前の子サイト(blog_id=2)の記事を出力します。
<ul> <mt:Entries include_blogs="2"> <li><mt:EntryTitle></li> </mt:Entries> </ul>
子サイトでは現在「ニュースA」「ニュースB」という2つの記事のみ投稿している状態です。
再構築を行うと以下のように出力されます。
<ul> <li>ニュースB</li> <li>ニュースA</li> </ul>
この状態で再構築トリガーの設定を行い、記事の投稿などで表示がどうなるかを確認してみます。
公開
設定できるトリガーのうち、まずは「公開」を試してみます。
再構築トリガーを設定します。
再構築を行う親サイトの左ナビにある設定 > 再構築トリガーを選択し、「再構築トリガーを作成」をクリックします。
再構築対象の「ニュース」を選択して次へをクリックします。
「記事/ウェブページ」を選択して次へをクリックします。
今回は公開を試すので、「公開」を選択して次へをクリックします。
「インデックスを再構築する」を選択してOKをクリックします。
最後に「変更を保存」をクリックして設定完了です。
実際に子サイトで記事を投稿して試してみます。
「ニュースC」という記事を作成して公開したところ、親サイトにも反映されました。
<ul> <li>ニュースC</li> <li>ニュースB</li> <li>ニュースA</li> </ul>
次に「ニュースC」というタイトルを「ニュースC-2」に修正してみましたが、こちらも親サイトに反映されました。
<ul> <li>ニュースC-2</li> <li>ニュースB</li> <li>ニュースA</li> </ul>
次に「ニュースC-2」の記事を未公開に変更してみましたが、この場合は再構築されず、記事は残ったままになりました。
<ul> <li>ニュースC-2</li> <li>ニュースB</li> <li>ニュースA</li> </ul>
最後に「ニュースC-2」を公開状態に戻してから記事を削除してみました。
結果は未公開にした時と同じく、再構築されませんでした。
<ul> <li>ニュースC-2</li> <li>ニュースB</li> <li>ニュースA</li> </ul>
結論としてはトリガーを「公開」にした場合、記事の公開時や変更時には再構築が行われますが、未公開や削除時には再構築が行われませんでした。
保存
次にトリガーを「保存」にして試してみます。
先ほどと同じように「ニュースD」という記事を作成して公開したところ、親サイトにも反映されました。
<ul> <li>ニュースD</li> <li>ニュースB</li> <li>ニュースA</li> </ul>
タイトルを「ニュースD-2」に修正した場合も反映されました。
<ul> <li>ニュースD-2</li> <li>ニュースB</li> <li>ニュースA</li> </ul>
記事を未公開に変更した場合も反映されました。
<ul> <li>ニュースB</li> <li>ニュースA</li> </ul>
最後に「ニュースD-2」を公開状態に戻してから記事を削除してみましたが、この場合は再構築されませんでした。
<ul> <li>ニュースD-2</li> <li>ニュースB</li> <li>ニュースA</li> </ul>
結論としてはトリガーを「保存」にした場合、トリガーが「公開」の時にプラスして未公開時にも再構築が行われるようになりました。
これだと「公開」ではなく「保存」を使えばいいのではと思ったのですが、調べてみると日時を指定した予約投稿時は「公開」でないと再構築が行われないようです。
公開取り消し
最後に「公開取り消し」を試してみます。
まずは再構築トリガーを変更します。
トリガー名からして公開時や変更時には再構築されなさそうですが、先ほどまでと同じ流れで一通り試してみます。
「ニュースE」という記事を作成して公開したところ、やはり親サイトには反映されませんでした。
<ul> <li>ニュースB</li> <li>ニュースA</li> </ul>
「ニュースE-2」に修正した場合も同様に、反映されませんでした。
<ul> <li>ニュースB</li> <li>ニュースA</li> </ul>
親サイトで再構築を行い、ニュースE-2が表示されている状態で記事を未公開に変更してみます。
これで反映されるかと思ったのですが、再構築はされず記事は表示されたままでした。
<ul> <li>ニュースE-2</li> <li>ニュースB</li> <li>ニュースA</li> </ul>
最後に「ニュースE-2」を削除してみましたが、この場合も再構築されませんでした。
<ul> <li>ニュースE-2</li> <li>ニュースB</li> <li>ニュースA</li> </ul>
結論としては試してみたいずれも再構築されませんでした。
調べても情報が見つけられなかったので推測ですが、「公開終了日」で日時を指定して公開を取り消した場合に再構築されるとかなのかもしれないです。
一通り試してみての結論ですが、基本的に記事を変更した時は再構築したいことが多いので、「公開」「保存」をセットで登録しておくとよいのかなと思います。
「公開取り消し」に関してはどのタイミングで再構築されるのかわかりませんが、日時指定して公開取り消しをしそうな場合には設定しておいても良いかもしれません。
【参考サイト】
コメントが承認されるまで時間がかかります。