カテゴリーをドロップダウンで表現するためのプラグイン。 Zelig Dropdown Cats の設置とカスタマイズについて。
上記ページからダウンロードし、プラグインフォルダにインストールして有効化。 あとは表示させたい場所(サイドメニューなど)に次のコードを記述するだけ。
<?php zelig_dropdown_cats(); ?>
パラメーターは次の通り( 開発元ページから引用)
Parameter |
Values |
Description |
Default |
sort_column |
name
id |
カテゴリー名か、id順でソート |
id |
sort_order |
asc
desc |
ソートの昇順・降順を指定 (ascending=昇順 / descending=降順) |
asc |
file |
string |
選択したカテゴリーのPHPファイル名 (動かない模様) |
index.php |
hide_empty |
0
1 |
1=空のカテゴリーを表示しない / 0=表示する |
1 |
exclude |
id番号をコンマ区切りで複数指定可 |
リストから表示を省くカテゴリーid |
|
post_count |
0
1 |
1=各カテゴリーごとのポストの数を表示する / 0=しない |
0 |
title |
string |
プルダウンメニューの一行目に表示させたいタイトル。何も表示させたくない場合は (’title=’) のように空欄で記述 |
“Categories” (または対応言語の某) |
boxwidth |
number |
リストボックスの幅サイズ(pixel)。これを指定しない場合もしくは0を指定した場合、最も長いカテゴリ名の幅に依存する。
カテゴリー名が指定したサイズより長い場合は、カテゴリー名が途中で切れることがある。(IE6…の場合?) |
0 |
child_of |
number |
指定なしもしくは-1をセットした場合、子(サブ)カテゴリーを含む全てのカテゴリーを表示する。親カテゴリーのみ表示させたい場合は0を指定する。カテゴリーIDを指定するとそのカテゴリーのみを表示する。 |
-1
|
カスタマイズ:ボタンクリックでリンクする
プルダウンを選択するだけでリンク先に飛んでしまうという挙動が個人的にイヤでGOボタンを追加。変更点は次の通り。
zeling-dropdown-cats.php 変更前
- $thelist .= '<form id="catform' . $rand . '" action="">' . "\n";
- $thelist .= '<select name="archive_chrono" onchange="window.location=(document.forms.catform' . $rand . '.archive_chrono[document.forms.catform' . $rand . '.archive_chrono.selectedIndex].value);"' . $boxlimit . "\n";
- if ( $title )
- $thelist .= '<option value="">' . $title . '</option>' . "\n";
- foreach ($categories as $category) {
- if (intval($hide_empty) == 0 || isset($category_posts["$category->cat_ID"])) {
- $num_found++;
- $link = '"'.get_category_link($category->cat_ID).'"';
- $link .= '>';
- $link .= apply_filters('list_cats', $category->cat_name, $category);
- if ( intval($post_count) == 1 )
- $link .= ' ('.intval($category->category_count).')';
- $thelist .= "\t<option value=$link</option>\n";
- }
- }
- $thelist .= '</select>
- ' . "\n";
- $thelist .= '</form>' . "\n";
変更後
- $thelist .= '<form id="catform' . $rand . '" action="">' . "\n";
- $thelist .= '<select name="archive_chrono"' . $boxlimit . "\n";
- if ( $title )
- $thelist .= '<option value="">' . $title . '</option>' . "\n";
-
- foreach ($categories as $category) {
- if (intval($hide_empty) == 0 || isset($category_posts["$category->cat_ID"])) {
- $num_found++;
- $link = '"'.get_category_link($category->cat_ID).'"';
- $link .= '>';
- $link .= apply_filters('list_cats', $category->cat_name, $category);
- if ( intval($post_count) == 1 )
- $link .= ' ('.intval($category->category_count).')';
-
- $thelist .= "\t<option value=$link</option>\n";
- }
- }
-
- $thelist .= '</select> <input type="button" onClick="window.location=(document.forms.catform' . $rand . '.archive_chrono[document.forms.catform' . $rand . '.archive_chrono.selectedIndex].value);" value="GO" />
- ' . "\n";
- $thelist .= '</form>' . "\n";
|