このブログで採用した軽量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);
	}
}

これでコンテンツの読みこみが必要最小限になります。

以上、参考になりましたら幸いです。

公開: / 最終更新日: