このブログで採用した軽量CMSPicoのソースを眺めていたら、タグ付けに使用しているプラグイン、Pico Tagsの処理を大幅に効率化できることに気づきました。プラグイン側でファイルを読みこんでヘッダーを解析していますが、わざわざそんなことをする必要はないのです。ただしPico側に少々手を加えなければなりません。以下その作業内容。
まず /lib/pico.php の248行に次を追加します:
'tags' => isset($page_meta['tags']) ? $page_meta['tags'] : '',
次に /plugin/pico_tags.php に次の関数を追加します:
public function before_read_file_meta(&$headers) {
$headers['tags'] = 'Tags';
}
最後に/plugin/pico_tags.phpのget_pages関数で記述されているforeach文を次のかたちに変更します:
foreach ($pages as $page) {
$tags = explode(',', $page['tags']);
if (count($tags) > 0 && (in_array($this->current_tag, $tags) || $is_index)) {
$page['tags'] = $tags;
array_push($new_pages, $page);
}
}
これでコンテンツの読みこみが必要最小限になります。
以上、参考になりましたら幸いです。