一連の記事→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");'));
ためしに記事ページの時だけ表示されるカテゴリー一覧、というものを組んでみました。
トップページ、無い。
記事ページ、ある。
良い感じの動作ができていますね。