ショウジンブログ on Hatena

“お芝居をしないと、この社会では異邦人として扱われるほかない”

カテゴリーリストを出力@WordPress

wp_list_categories関数を使う際の参考に、整理しました。

そのまま(オプションを指定せずに)使用する場合。

<ul class="list_categories">
<?php
    wp_list_categories('');
?>
</ul>

出力されるソースは以下になります。

<ul class="list_categories">
<li class="categories">カテゴリー<ul>    <li class="cat-item cat-item-1"><a href="http://wp.showzine.co/category/news/" title="お知らせカテゴリーです。">お知らせ</a>
<ul class='children'>
    <li class="cat-item cat-item-4"><a href="http://wp.showzine.co/category/news/info-seminar/" >セミナー情報</a>
</li>
</ul>
</li>
    <li class="cat-item cat-item-2"><a href="http://wp.showzine.co/category/blog/" title="ブログカテゴリーです。">ブログ</a>
<ul class='children'>
    <li class="cat-item cat-item-3"><a href="http://wp.showzine.co/category/blog/life/" >生活</a>
</li>
</ul>
</li>
    <li class="cat-item cat-item-8"><a href="http://wp.showzine.co/category/info-arrival/" >入荷情報</a>
</li>
</ul></li></ul>

冒頭の「カテゴリー」は不要なので出力しないようにオプションを指定します。

<ul class="list_categories">
<?php
    wp_list_categories('title_li=');
?>
</ul>

htmlはこのように、ちょっとスッキリしました。

<ul class="list_categories">
    <li class="cat-item cat-item-1"><a href="http://wp.showzine.co/category/news/" title="お知らせカテゴリーです。">お知らせ</a>
<ul class='children'>
    <li class="cat-item cat-item-4"><a href="http://wp.showzine.co/category/news/info-seminar/" >セミナー情報</a>
</li>
</ul>
</li>
    <li class="cat-item cat-item-2"><a href="http://wp.showzine.co/category/blog/" title="ブログカテゴリーです。">ブログ</a>
<ul class='children'>
    <li class="cat-item cat-item-3"><a href="http://wp.showzine.co/category/blog/life/" >生活</a>
</li>
</ul>
</li>
    <li class="cat-item cat-item-8"><a href="http://wp.showzine.co/category/info-arrival/" >入荷情報</a>
</li>
</ul>

li要素のclass、a要素のtitleが不要な場合には正規表現を使います。

引数に「echo=0」を追加し、echoせずにそのままデータを引き渡すようにしてから、変数$catsに代入し、正規表現を使って置換、最後にechoします。

<?php
$cats = wp_list_categories('echo=0&title_li=');
$cats = preg_replace('/ title=\"(.*?)\"/','',$cats);
$cats = preg_replace('/ class=\"(.*?)\"/','',$cats);
echo $cats;
?>
</ul>

ソースを確認してみると、さらにスッキリ。

<ul class="list_categories">
    <li><a href="http://wp.showzine.co/category/news/">お知らせ</a>
<ul class='children'>
    <li><a href="http://wp.showzine.co/category/news/info-seminar/" >セミナー情報</a>
</li>
</ul>
</li>
    <li><a href="http://wp.showzine.co/category/blog/">ブログ</a>
<ul class='children'>
    <li><a href="http://wp.showzine.co/category/blog/life/" >生活</a>
</li>
</ul>
</li>
    <li><a href="http://wp.showzine.co/category/info-arrival/" >入荷情報</a>
</li>
</ul>

カテゴリごとにCSSで色等、デザインを変えるような場合もあるので、この処理については必要に応じて使い分けます。

そのほか、投稿数(カテゴリごとの)でソートする、表示するカテゴリ数を指定して制限する等のカスタマイズは以下にまとめました。

blog.showzine.co