エントリー本文
サイドメニューのツリー化プラグイン for WordPress
サイドメニューをツリー表示するプラグインを作成しました。
例えば、当サイトのテンプレートをデフォルトで利用している場合、各メニューリストは全て丸印のリストマークを表示するようにしていますが、カテゴリーリスト等のインデントされたリスト類はやや味気ないものになっています。
このプラグインを利用することでスクリーンショットのようなツリー表示に変更することができます。
ツリー化は他に色々なプラグインが出回っていると思いますが、当サイトで他のブログに適用しているカスタマイズを WordPress にも反映させていきたいと思います。
1.はじめに
1.1 当サイトのテンプレートをご利用の場合
プラグインは当サイトで配布しているテーマ(3カラム版)のデフォルト状態に適用可能な形で配布しています。インストールしてプラグインを有効にするだけで「Recent Comments」「Recent Trackbacks」「Categories」の各メニューリストがツリー化されます。
1.2 他のテンプレートをご利用の場合
「ツリー化プラグイン」を利用する場合、メニューリストのマークアップで下記のように青色のタグが利用されている必要があります。
<ul>
<li><h2>Recent Comments</h2>
<ul><?php get_recently_commented(); ?></ul>
</li>
<li><h2>Recent Trackbacks</h2>
<ul><?php get_recently_trackbacked(); ?></ul>
</li>
:
</ul>
また、このプラグインはメニューリストタイトルをキーにして、ツリー対象のメニューリストを検索するため、5項の内容にしたがって、スクリプトに埋め込むメニューリストタイトルを修正する必要があります。
CSS はプラグインに同梱されている tree-maker.css を適宜変更してください。
2.プラグインのダウンロード
下記のいずれかのリンクをクリックし、プラグインアーカイブをダウンロードしてください。
tree-maker.zip / tree-maker.lzh
2007.02.27 初版 2007.05.11 プラグインパス取得方法変更
3.プラグインのアップロード
ダウンロードしたアーカイブを解凍し、tree-maker フォルダごと、wp-content/plugins 配下にアップロードしてください。アップロード後、下記のようなディレクトリ・ファイル構成になっていればOKです。
wp-content/
plugins/
tree-maker/
maketree.js
tree_end.gif
tree_lst.gif
treehandler.js
tree-maker.css
tree-maker.php
4.プラグインを有効にする
WordPress の管理画面より「Tree Maker」の有効化のリンクをクリックします。
5.カスタマイズ
treehandler.js を任意のエディタで開き、ツリー化したいメニューを記述します。カッコ内にはメニューリストのタイトルをそのまま記述してください。
デフォルトでは下記の設定、つまりメニューリストタイトルが「Recent Comments」「Recent Trackbacks」「Categories」となっているものに対してツリー化するようになっています。
function treeMaker() {
tree('Recent Comments');
tree('Recent Trackbacks');
tree('Categories');
}
またメニュータイトルを日本語にしている場合は、下記のように日本語のタイトルと英語の名称(適当でいいです)してください。
function treeMaker() {
tree('最近のコメント', 'comment');
tree('最近のトラックバック', 'trackback');
tree('カテゴリー', 'category');
}
6.ツリー表示変更
デフォルト状態では冒頭のスクリーンショットのように、2階層目のリストからツリー表示する設定にしています。
これを左のように、1階層目からツリー表示にしたい場合は、tree-maker.css を任意のエディタで開き、コメントアウトしている下半分の
#sidebar .tree li,
#links-left .tree li,
#links-right .tree li {
padding: 0 0 0 16px;
background: url(tree_lst.gif) no-repeat 5px 0em;
}
#sidebar li li.end,
#links-left li li.end,
#links-right li li.end {
background-image: url(tree_end.gif);
}
を有効にして、上半分の設定をコメントアウトするか削除してください。
7.ツリー表示変更
ツリー画像を変更したい場合は、プラグインディレクトリにある、tree_lst.gif / tree_end.gif をそれぞれ入れ替えてください。
≫ 遂に「小粋空間」が WordPress に対応!? from TA.WA.GO.TO.
Movable Type を利用してのブログ運営では、あまりにも有名な「小粋空間」!以前、Moavble Type を利用していた私も本当に良く参考にさせ... [続きを読む]
≫ http://www.stealth2.net/?p=31 from affection.
以前からやってみたかったサイドメニューのツリー化なのですが、小粋空間様よりPluginが!「サイドメニューのツリー化プラグイン for WordPress... [続きを読む]
≫ Tree Maker Plugin from DAISUKI-JAM
サイドメニューのツリー化プラグインが小粋空間様から出ましたよー♪
サイドメニューのツリー化プラグイン for WordPress
早速導入させていただきま... [続きを読む]
≫ 小粋なテーマカスタマイズと修正その2 from LOVE!?
参考にさせていただいたエントリー
くろいおとなどっとこむブログ ? WordPress 2.1日本語化の覚え書き
2.1ではカテゴリーリストでリンクカ... [続きを読む]
≫ サイドメニューのツリー化 from PARADISE CLUB
小粋空間様 にて、配布されている 「WordPress」 ツリー化プラグインの紹... [続きを読む]
≫ 階層構造をツリー化:Tree Maker from Cha's Bar
Movable Type を利用されている方々には、本当に有名な「小粋空間」ですが、最近では WordPress に関しての plugin やテンプレート... [続きを読む]
≫ Wordpress + Tree Maker がさくっと動作しない件 from m_haseの日記
Wordpressをホームのサブディレクトリにインストールし、しかもブログのURLをホームになるようにカスタマイズしていると、Tree Makerが有効... [続きを読む]
≫ サイドバーのメニューをツリー化:tree-maker from Cha's Bar 2.0
Movable Type では、知らない人がいないのではないでしょうか・・・「小粋空間」というブログ。既にブログを解説されてから 3 年を経過しているそう... [続きを読む]
≫ WordPress備忘録 from 四月階段
素敵なテーマ、そしてカスタマイズ、プラグインをお借りいたしました。ありがとうございました。
... [続きを読む]
こんにちは。
いつも、ステキなカスタマイズ記事をありがとうゴザイマス。
とてもとても、参考にさせていただいております。
さっそく、サイドメニューのツリー化pluginを導入してみたのですが、上手く表示されないのです(泣
ソースを眺めて、とりあえずcssを以下のように修正してみました。
#sidebar .tree li,
#sidebar .tree li li,
#sidebar .tree li li li,
#sidebar li.end,
#sidebar li li.end,
#sidebar li li li.end,
#sidebar li li li.end,
#sidebar li li li li.end,
これでとりあえず表示するようにはなったのですが、どうも折りたたみとの相性が悪いのか、折りたたみを使用している箇所はツリー化されません。
折りたたみだとタグにidふっちゃうから、それで駄目なのかなぁ...?
自分でも調査はしているのですが、なにか良い解決策があれば、と思いコメントさせていただきました。
お手数をおかけしますが、よろしくお願いします。
yujiroさん、こんにちは。
今朝、こちらの記事を拝見してから そわそわしながら家の用事を終わらせて(笑)、やっと導入完了しましたv
問題なく導入できたようです。
ご報告とお礼まで。
こんにちは。
ツリー化プラグイン作ってくれないかなぁと思っていたら、なんとタイムリーな!
もちろんありがたく使わせていただいております。
うちも問題なく導入できてますよ^^
も...申し訳ありません!
cssは私の勘違いでゴザイマス。(うわ、むちゃくちゃハズカシイ...)
階層の数え方を間違っておりました(汗
あとはJavascriptとの関係が...うーん、yujiro様は両立されてますよね?
やはり私の設定がまずいのでしょうか...。
いつも参考にさせて頂いています。
週末にしようと思っていたツリー化、やってしまいました・・・何と 5 分で見事ツリー化に成功!!!感動です。今後とも素晴らしい投稿記事を期待しています(プレッシャーではありません・・・笑))
>Tricksterさん
こんばんは。
コメントありがとうございます。
折りたたみとの両立はまた機会をみて確認させてください。
それではよろしくお願い致します。
>ミッチさん
こんばんは。
ご利用&トラックバックありがとうございます。
素早く頂いたコメントはカスタマイズ全盛期?の頃を彷彿とさせました(笑)。
>さっちんさん
こんばんは。
ご利用ありがとうございます。
タイムリーということで大変良かったです。
うまく動作しているようでホッとしました。
>Zero Cha Coolさん
こんばんは。
ご利用ありがとうございます。
それにしても5分とは、素晴らしいですね!
では次回の記事をどうぞお楽しみに。(笑)
どうもです。
昨日、思いがあって、他の plugin を使って表示しているサイドバーのリストをツリー表記に変更してみたのですが・・・な?んにもしないで(といっても本投稿記事の変更は実施しましたが)ツリー完成!
二重の感動を有難うございます!!!
>Zero Cha Coolさん
こんにちは。
再びのご利用&ご連絡ありがとうございます。
うまくできたようで良かったです。
結構、利用可能範囲が広いのかも知れませんね。
ではでは!
こんにちは。
WordPressの設定でも別になっているように、WordPressのURIとホームページのURIは異なる場合があります。
したがって、pluginディレクトリを取得するためには
get_settings('home');
ではなく
get_settings('siteurl');
を使っていただく方がよいかと思います。
>masaaki_h1さん
お世話になります。
パスの件、ご指摘ありがとうございました。
プラグインは先程修正致しました。
はじめまして。お世話になっております。
tree-makerを使わせていただいております。
WordPress 3.0にバージョンアップしたのですが、
コメント、トラックバック共に表示されなくなりました。
何か対策はあるでしょうか。
お忙しいところ誠に申し訳ありません。
よろしくお願い致します。
お世話になります
tree-makerが働かない件の続報です。
「Commented entry list」プラグインが機能しなくなっていました。
No Response と表示されます。
そこで検索したところ修正のやり方がありました。
commented-entry-list.phpを開き
12.global $wpdb, $tablecomments, $tableposts;
↓
12.global $wpdb;
13.$tablecomments = $wpdb->comments;
14.$tableposts = $wpdb->posts;
70.global $wpdb, $tablecomments, $tableposts;
↓
70.global $wpdb;
71.$tablecomments = $wpdb->comments;
72.$tableposts = $wpdb->posts;
と修正すると表示されます。
ただし、tree-makerは機能していません。
よろしくお願い致します。
>NIMITZさん
こんばんは。
ご指摘&情報ありがとうございました。
「Commented entry list」プラグインのソースコード修正の件は当ブログのエントリーでも情報展開させて頂きます。感謝致します。
tree-makerについては少々お時間頂けますでしょうか。
それではよろしくお願い致します。
>NIMITZさん
こんばんは。
tree-makerをWordPress3.0に適用させたところ、正常に表示されることを確認致しました。
こちらで確認した環境ですが、当ブログの配布テーマを利用し、デフォルトプラグインと「Commented entry list」プラグインを有効にしました。
「正常に機能しない」とのことですので、まず、プラグインを適用した状態でHTMLソースに以下の内容が表示されることを確認願えますでしょうか。
</head>の直前
<link rel="stylesheet" href="http://user-domain/~/wp-content/plugins/tree-maker/tree-maker.css" type="text/css" media="screen" />
<script type="text/javascript" src="http://user-domain/~//wp-content/plugins/tree-maker/maketree.js"></script>
<script type="text/javascript" src="http://user-domain/~//wp-content/plugins/tree-maker/treehandler.js" charset="shift_jis"></script>
</body>の直前
<script type="text/javascript">
treeMaker();
</script>
表示されない場合、他のプラグイン(「Commented entry list」プラグインは有効のまま)を無効にして読み込まれるかどうかご確認願えますでしょうか。ちなみに、テーマファイルに以下の2行があれば、上記のコードは表示される認識です。
ヘッダー(header.php)
<?php wp_head(); ?>
フッター(footer.php)
<?php wp_footer(); ?>
WordPress 3.0の機能はすべて把握できていないので、認識誤りがありましたらご指摘ください。
それではよろしくお願い致します。
お世話になっております。
お返事が遅れまして申し訳ありません。
結果ですが問題なくツリー化されました。
前回はサーバーのキャッシュを見ていたのかもしれません。
お騒がせいたしまして大変申し訳ありません。
ときどきこのキャッシュに騙されるのです。
結局Commented entry listプラグインが問題だったということですね。
問題はすべてクリアできました。
お忙しい中いろいろ教えていただきありがとうございました。
今後とも宜しくお願いいたします。
>NIMITZさん
こんばんは。
ご連絡ありがとうございました。
無事に直ったようでよかったです。
ではでは!
