対象:ホームページ・Web制作
回答数: 3件
回答数: 7件
回答数: 3件
竹波 哲司
Webプロデューサー
-
なかなか手ごわいかもしれません
バンブーウエイブです。
ちょっと見てみましたが、手ごわいかもしれませんね。
親カテゴリを表示しないというのがあまり要求としてないのでしょうね。
本格的に直すなら、class Walker_Categoryをハックする必要があるでしょう。
しかし、今の仕組み的に、実現するのは大変でしょう。
私のほうでは、極力小手先で直せる方法を考えてみました。
**cssで対応
まずはじめにcssで何とかできないか考えてみました。
li.cat-item-7{
background: none;
}
li.cat-item-7 a{
visibility:hidden;
}
ul.children li{
background: url(images/arrow.gif) no-repeat 2px 8px;
padding-left: 12px;
}
ul.children li a{
visibility:visible;
}
みたいな感じで、親のアイテムのaタグを表示しないようにしました。
結論として、あまりかっこよくない。
**PHPで文字列置き換え
wp_list_categoriesを呼ぶときに、echo=0とすると、カテゴリのリストが文字列で戻ってくるようになります。
ですので、戻ってきた文字列に対して、特定のカテゴリのすぐ直後にある<a>から</a>の文字列を置き換えればよい気がします。特定のカテゴリとは親カテゴリです。
<a>から</a>を表す正規表現がちょっと難しいですが、
最後に変換後の文字列をechoすればOKでしょう。
<?php
//wp_list_categories('orderby=name&show_count=0&title_li=');
//↓こんな感じで・・・
$buf=wp_list_categories('echo=0&orderby=name&show_count=0&title_li=');
$buf= preg_replace('/<li class="cat-item cat-item-7"><a href=(.*?)<\/a>/', '<li class="cat-item cat-item-7">', $buf);
echo $buf;
?>
見栄えはやっぱりいま一つ・・・
CSSも合わせていろいろ試す必要があるかもしれないですね。
ホームページ制作・WEBコンサルティングのバンブーウエイブ
(現在のポイント:-pt)
この回答の相談
WordPress のバージョンは 2.6.5です。
現在、サイドバーのPHPを
<h2>○○○○○</h2>
<ul class="menu">
<?php wp_list_categories('title_li=&am… [続きを読む]
yurimonさん (兵庫県/31歳/女性)
このQ&Aの回答
このQ&Aに類似したQ&A