なかなか手ごわいかもしれません - 専門家回答 - 専門家プロファイル

専門家の皆様へ 専門家プロファイルでは、さまざまなジャンルの専門家を募集しています。
出展をご検討の方はお気軽にご請求ください。
竹波 哲司

竹波 哲司
Webプロデューサー

- good

なかなか手ごわいかもしれません

2009/02/01 01:30

バンブーウエイブです。
ちょっと見てみましたが、手ごわいかもしれませんね。

親カテゴリを表示しないというのがあまり要求としてないのでしょうね。
本格的に直すなら、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 このQ&Aは、役に立った!

この回答の相談

WordPressのカテゴリを表示なしにしたい

法人・ビジネス ホームページ・Web制作 2009/01/31 19:17

WordPress のバージョンは 2.6.5です。

現在、サイドバーのPHPを

<h2>○○○○○</h2>
<ul class="menu">
<?php wp_list_categories('title_li=&am… [続きを読む]

yurimonさん (兵庫県/31歳/女性)

このQ&Aの回答

私もよくWordPressを利用しています。 志水 雅眉(Webプロデューサー) 2009/01/31 19:45

このQ&Aに類似したQ&A

PHP&MySQLによる会員制サイトの構築について こつこつがんばさん  2014-05-01 18:22 回答1件
フリーでやっていける条件って。 mikoriさん  2011-10-27 22:08 回答3件
ActionScript3.0は学校で学ばないと身につかない? DJ FUMYさん  2010-02-09 23:01 回答1件