拙著「上手に稼ぐカラ売りテクニック」が発売されました。
株価が下がる局面で利益を得ることができる「空売り」について、詳しく解説した本です。
自由国民社刊で、定価1,512円(税込)です。
EntryCategoriesタグを改良するプラグイン(その3)
EntryCategoriesタグを拡張するプラグインでは、前日解説したように、ブログ記事が属するカテゴリのブログ記事一覧を出力したり、ウェブページが属するフォルダのウェブページ一覧を出力したりすることができます。
ただ、単純にテンプレートモジュールを組むだけだと、そのテンプレートモジュールの再構築時の処理時間が、ブログ記事数やウェブページ数の二乗に比例するようになります。
この問題を避けるために、Movable Type 4.2のキャッシュ機能を利用する方法を解説します。
1.ブログ記事が属するカテゴリのブログ記事一覧を出力する場合
ブログ記事が属するカテゴリのブログ記事一覧を出力する場合、そのためのテンプレートモジュール(もしくはウィジェット)は、以下のタイミングで無効にする必要があります。
- ブログ記事が編集された
- カテゴリが編集された
したがって、キャッシュの設定は以下のように設定します。
- 「モジュールのキャッシュ」で「作成または更新後に無効にする
- 「ブログ記事」と「カテゴリ」のチェックをオンにする
ただし、このテンプレートモジュール(またはウィジェット)は、カテゴリごとに別のキャッシュを出力する必要があります。
そこで、MTIncludeタグにkeyモディファイアを指定します。
例えば、テンプレートモジュールに「同一カテゴリブログ記事」という名前を付けた場合、テンプレートモジュールをインクルードする処理は、以下のように書きます。
<MTEntryIfPrimaryCategory>
<MTSetVarBlock name="entry_cat_id"><MTEntryPrimaryCategory>entry_cat_<$MTCategoryID$></MTEntryPrimaryCategory></MTSetVarBlock>
<MTInclude widget="同一カテゴリブログ記事" key="$entry_cat_id">
</MTEntryIfPrimaryCategory>
2.ウェブページが属するフォルダのウェブページ一覧を出力する場合
ウェブページが属するフォルダのウェブページ一覧を出力する場合、そのためのテンプレートモジュール(もしくはウィジェット)は、以下のタイミングで無効にする必要があります。
- ウェブページが編集された
- フォルダが編集された
したがって、キャッシュの設定は以下のように設定します。
- 「モジュールのキャッシュ」で「作成または更新後に無効にする
- 「ウェブページ」と「フォルダ」のチェックをオンにする
ただし、このテンプレートモジュール(またはウィジェット)は、フォルダごとに別のキャッシュを出力する必要があります。
そこで、MTIncludeタグにkeyモディファイアを指定します。
例えば、テンプレートモジュールに「同一フォルダウェブページ」という名前を付けた場合、テンプレートモジュールをインクルードする処理は、以下のように書きます。
<MTIfArchiveType archive_type="Page">
<MTPageIfFolder>
<MTSetVarBlock name="page_folder_id"><MTPageFolderEx>page_folder_<$MTFolderID$></MTPageFolderEx></MTSetVarBlock>
<MTInclude widget="同一フォルダウェブページ" key="$page_folder_id">
</MTPageIfFolder>
</MTIfArchiveType>
