あにょのブログの記事数が多くなってきたので、カテゴリー別に一覧表示できるようにしました。前は記事の一覧表示させるのに「NP_Title List」を入れてたんですが、「NP_ArchiveIndex」に変更しました。
「NP_ArchiveIndex」はアーカイブ一覧画面に、カテゴリー別に記事一覧を分かりやすく表示する為のプラグインです。
プラグインをインストールしたら、アーカイブ一覧画面にカテゴリー別に記事の一覧を作成するため、スキンにプラグイン変数を記述します。
■スキンへの記述
スキン編集から「月別アーカイブ一覧ページ」の表示させたいところに記述
第1パラメータはインデックス(全カテゴリー表示時)のカテゴリー別記事数、第2パラメータはカテゴリー別表示時の一覧記事数、第3はカテゴリー詳細文の表示、非表示です。
<%archivelist(mtemplate)%> ↓ <%ArchiveIndex(10,50,none)%>
■スタイルシートに追記
/*------------------------------------------------- NP_ArchiveIndex -------------------------------------------------*/ .archiveindex table { /*テーブルのスタイル指定*/ width: 70%; margin: 1em 0 2em; padding: 0; border-collapse: collapse; }; .archiveindex th { /*カテゴリー名*/ margin: 0; padding: 2px 5px; text-align: left; }; .archiveindex tr.more { /*Moreリンク行*/ background: none; font-size: small; } .archiveindex td { /*セル表示のスタイル指定*/ margin: 0; padding: 2px 5px; border-top: 1px dotted gray; text-align: left; vertical-align: top; } .archiveindex td.detail { /*日付表示セル*/ white-space: nowrap; text-align: right; } .archiveindex td span.title{ /*記事タイトル*/ } .archiveindex td span.title-up { /*更新された記事*/ color: red; } .archiveindex td span.catdesc { /*カテゴリー詳細*/ font-size: small; color: gray; } .archiveindex td span.nomore { /*Moreリンク無効*/ color: #ccc; }
■NP_ArchiveIndex.phpの編集
カテゴリーの名前の前に<00>、<01>等の数字を入力して、順番を自由に設定できるようにしてますので、その数字を表示させないように変更します。
255行目 $icatName = $b->getCategoryName($icat); ↓ $icatName = strip_tags($b->getCategoryName($icat));
NP_ArchiveIndexはカテゴリーの順番をNP_ContentsListを使って並べ替えするような仕様になってますが、当ブログではNP_ContentsListを使ってないのでうまく並べ替えされません。そこで、新着記事順にカテゴリーも並べ替えされるようにsort by categoryの部分をコメントアウトします。
378行目~396行目をコメントアウト /* //sort by category if ($manager->pluginInstalled('NP_ContentsList')) { $plugin =& $manager->getPlugin('NP_ContentsList'); if ($plugin) { $query = 'SELECT rid as catid FROM '. sql_table('plug_contentslist_rank') .' WHERE blog=0 AND rank<20 ORDER BY rank ASC'; // you can delete 'AND rank<20' $cl_res = sql_query($query); $arr_out2 = $arr_out; $arr_out = array(); while ($clrank = mysql_fetch_object($cl_res)) { $icatName = $b->getCategoryName($clrank->catid); $arr_out[] = $arr_out2[$icatName]; } $arr_out2 = ''; } } else { ksort($arr_out); }*/
■オプション設定
カテゴリーの名前をオレンジ色に変更しました。
<table><thead title="%catdesc%"><tr><th><a href="%caturl%">%catname%</a></th><th></th></tr></thead><tbody> ↓ <table><thead title="%catdesc%"><tr><th><a href="%caturl%"><span style="color: #FF6600;">%catname%</span></a></th><th></th></tr></thead><tbody>