どうでもいい雑記その913
- Category: その他雑記
- マクロストライアングルフロンティアは買った。
- 来週はマイソロ3。
- 相変わらず仕事でやることが多くて困る。
- もっとだらだらと過ごしたいんだけどなー。
適当に箇条書き。
※原作のヒロイン雅楽乃、香織理は、PSP版では攻略キャラではありません。
カスタム分類一覧を表示したいときのお話。いや、カスタム分類に限った話じゃなくて、通常のカテゴリにも当てはまる話なんだけどね。
以下、カスタム投稿「products」にカスタム分類「productcat」が設定されているものとして話を進める。
とりあえずこんな感じにsidebar.phpに記述すると
<ul>
<?php wp_list_categories( 'taxonomy=productcat&title_li='); ?>
</ul>
カスタム分類「productcat」の一覧が順不同リストとして表示される。
で、困るのが記事なりページなりが所属するカテゴリをハイライト表示させたいとき。
カスタム分類のアーカイブページでは該当するカテゴリのli要素に「current-cat」というclass属性値が自動的に振られるから、CSS書けば簡単にアクティブなカテゴリの表示を変更できる。
ところが個別の記事ページでは「current-cat」ってclassが振られないので、どうしようこれ、みたいになって困る。というか困った。
そこでだ。以下のようにして何とかした。
<ul>
<?php
if(is_singular('products') ) :
$catinfos = get_the_terms($post->ID, 'productcat');
foreach ( $catinfos as $catinfo ) :
$mycat = $catinfo;
break;
endforeach;
wp_list_categories( 'taxonomy=productcat&title_li=¤t_category='.$mycat->term_id);
else:
wp_list_categories( 'taxonomy=productcat&title_li=');
endif;
?>
</ul>
まずif(is_singular('products') ) :~else:と書いて、カスタム投稿「products」の個別記事ページとそれ以外で処理内容を分岐。
「products」の個別記事ページ以外では普通に「productcat」一覧を出力させる。
問題は「products」の個別記事ページの方で、どうしようか悩んでたらCodexに都合のよさそうなパラメータが。「current_category」にカテゴリIDを記述することで、「現在表示されてるページのカテゴリは○○だ」と強制できるらしい。
これを利用したのがif(is_singular('products') ) :内の記述部分で、まずはget_the_terms関数で現在の記事が属する「productcat」情報を取得。配列でごちゃごちゃなってるのでforeach関数使って、記事が属する「productcat」の最初の1つだけを使う。必要な情報はカテゴリID(整数)なので当該連想配列の中の「term_id」を持ってくればOK。あとはwp_list_categories関数にパラメータとして記述すればいいだけなので、あんな感じに書けば終了。
上の書き方の欠点は複数のカスタム分類に所属している記事については、(たぶん)IDの若い方の情報しか得られないので、複数カテゴリに所属していても複数のリンクをハイライト表示できないところにある。パラメータ「current_category」には整数しか渡せないっぽいので、所属カテゴリすべてにclass「current-cat」をつけたいときはどうしたらいいんだろうか、と思ったり。
まー、仕事で忙しいと書くことなくて、更新間隔があくわけだ。
とりあえず売ってたので購入。ホントは360版が良かったんだけどそっちは売り切れてたから妥協した。
PSPo2の自キャラがレベル200に到達したし、新しいゲーム始めるには丁度いいかな、と。今日はたぶんキャラメイクやって終わりだろうな。土日にがっつり遊ぼう。
iTunesでシャッフル再生しながらPSPo2で作業してたらFLEETの曲が流れてきて、今何やってんだろと思ったら、いつの間にかソロプロジェクトになってて、26日に新譜がでるらしい。
いい曲だ。
ボカロ曲投稿してたんだ、知らんかった。
曲がダメとかじゃなくて、プロがニコ動にどうこうとかいちゃもんつけてるバカは何なんだろうか。
あくまで個人的に、だけど。ボカロの曲ってボーカルが耳障りな曲が多くて、あんま好きじゃない。この曲はそういうのがなくていいな。ところでこの曲、佐藤さんが自分で歌ってくれたりしないのかな。