ウィジェット(widget)内のソースコードをカスタマイズする方法 Comment
11:58 AM on 2009年4月1日 widget, WordPress, ウィジェット, カスタマイズ, タグクラウド, テンプレート
サイドバーのウィジェット内で使ってるタグクラウドの部分のタグだけを変更したかったのですが、ちょっと壁にぶつかりました。
タグクラウドの呼び出しのタグをサイドバー(sidebar.php)に直接書いてるなら好きな形式で書けるのですが、表示する項目を手軽に変更できるようにウィジェットで管理してます。
となると、ウィジェットで使う基本的なhtmlタグはfunction.phpに書いてあるわけですが、これを触ると、ウィジェットで使っている他の項目(カテゴリー一覧とか月別アーカイブとか)にも影響が出てしまう。
タグクラウド(に限らず各項目)部分の出力するタグだけを変更したいんだけどどこを触ればいいんだろう・・・
?
まず、ウィジェット共通の部分は
/wp-content/themes/○○○/function.php に書いてあります。?
<?php
if ( function_exists(‘register_sidebar’) )
register_sidebar(array(
// ??(1) ?ウィジェット共通で最初に記載
‘before_widget’ => ‘<div class=”sideMenu”>’,
// ?(2) ウィジェット共通で最後に記載
‘after_widget’ => ‘</div></div>’,
// ?(3) ウィジェット共通でウィジェットのタイトルの前につくタグ
‘before_title’ => ‘<h4>’,
// (4) ウィジェット共通でウィジェットタイトルの後につくタグ
‘after_title’ => ‘</h4><div class=”widgetInner”>’,
));
?>
?
//////////////// 出力されるタグ //////////////////////
<div class=”sideMenu”> ←(1)
<h4>ウィジェットのタイトル</h4> ←(3)(4)
<div class=”widgetInner”> ←(4)
<div class=”wp-tag-cloud-outer”> ←タグクラウドの場合だけこれを挟みたい
<a href=”#”>タグ1</a>
<a href=”#”>タグ2</a>
<a href=”#”>タグ3</a>
</div> ←タグクラウドの場合だけこれを挟みたい
</div> ←(2)
</div> ←(2)
Google先生にいろいろ聞いてみたところ、親切な先生は英語で教えてくれました(涙
上記の英語サイトを見る限りどうやら
/wp-includes/category-template.php
を触ればいいらしい(汗
とりあえず700行目付近でそれらしい場所を発見。
書き換えたら上手くいけました。?
——————————
default :
$return = “<div class=’wp-tag-cloud-outer’>”; ←追加
$return .= join( “\n”, $a);
$return .= “</div>\n”; ←追加
break;
endswitch;?
——————————
?
タグクラウドに限らず?/wp-includes/category-template.php でいろいろ吐き出してるみたいです。
また、タグクライド以外では /wp-includes/widgets.php もいろいろ吐き出しているようですね。
『最近の投稿』でウィジェットが出力するソースは /wp-includes/widgets.php の1310行目付近で発見。
<?php echo $before_widget; ?>でソース内を検索すると目的の場所に早くたどり着けるかもしれません。
?
ウィジェットを使用しない場合は下記を参考にsidebar.php等に直接書き込めば問題ないと思います。
http://wpdocs.sourceforge.jp/テンプレートタグ/wp_tag_cloud
http://wpdocs.sourceforge.jp/テンプレートタグ/get_the_tag_list
