一連の記事→wordpressテーマをカスタマイズしよう Archives – aoringo works
プロデューサー! ウィジェットですよウィジェット!! のヮの
ウィジェットはとても大事です。サイドバーを彩ります。しかし自分で作るには少しハードルが高い。テヘペロ。
いちいちオプションとかくっつけたりして、なんか意味不明なコードが沢山あって。いやん、ばかん。
だからテンプレートとして簡単な即席ウィジェットを一つ持っておくと便利ですよ。
まずは実際に出力されるソースを見ます。
<div id="meta-2" class="side-widget"><p class="widget-title">メタ情報</p> <ul> <li><a href="http://192.168.0.56/wordpress/wp-admin/">サイト管理</a></li> <li><a href="http://192.168.0.56/wordpress/wp-login.php?action=logout&_wpnonce=9e97d1c9d7">ログアウト</a></li> <li><a href="http://192.168.0.56/wordpress/?feed=rss2" title="このサイトを RSS2.0 で購読">投稿の <abbr title="Really Simple Syndication">RSS</abbr></a></li> <li><a href="http://192.168.0.56/wordpress/?feed=comments-rss2" title="すべての投稿への最新コメントを RSS で購読">コメントの <abbr title="Really Simple Syndication">RSS</abbr></a></li> <li><a href="http://ja.wordpress.org/" title="Powered by WordPress, state-of-the-art semantic personal publishing platform.">WordPress.org</a></li> </ul> </div>
ぐちゃあ・・・、wordpressによって生成されるコードは視認性が悪いですね。まあ愚痴ってもしかたがありません。
とりあえず抜き出すと、「ID=meta-2 class=sidewidget」のdivと「class=widget-title」のpさえあれば後は自由っぽいことがわかります。divのIDさえ変更すればあとは同じでも大丈夫そうです。
で、即席ウィジェットのコードはこれ
class capWidget extends WP_Widget {
function capWidget() {
parent::WP_Widget(false, $name = 'hogehogename');
}
function widget() {
?>
<div id="hogeid" class="side-widget">
<p class="widget-title">hogehogename</p>
</div>
<?php
}
add_action('widgets_init', create_function('', 'return register_widget("capWidget");'));
「capWidget」の部分と「hoge」の部分は自由にかえちゃってください。
「function capWidget() {」の中身がダッシュボードのウィジェットページに表示される名前です。

で、「function widget() {」の中身が実際に出力される部分。ここに色々なphpコードをぶち込んじゃって下さい。
広告コードを入れる、記事ページの場合だけ表示されるコンテンツを作る、やりようは色々ありますね。
class capWidget extends WP_Widget {
function capWidget() {
parent::WP_Widget(false, $name = 'カテゴリボックス');
}
function widget() {
?>
<?php if(is_single()) : ?>
<div id="sidecatlist" class="side-widget">
<ul>
<?php wp_list_categories('depth=true&hide_empty=0&title_li=&child_of=15'); ?>
</ul>
</div>
<?php endif; ?>
<?php
}
}
add_action('widgets_init', create_function('', 'return register_widget("capWidget");'));
ためしに記事ページの時だけ表示されるカテゴリー一覧、というものを組んでみました。

トップページ、無い。

記事ページ、ある。
良い感じの動作ができていますね。