このブログで採用した軽量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); } }
これでコンテンツの読みこみが必要最小限になります。
以上、参考になりましたら幸いです。