カスタム投稿タイプとカスタム分類の取得や条件判別

WordPress3.0で実装されたカスタム投稿タイプ(Custom Post Types)とカスタム分類(Custom Taxonomies)は非常に強力なんですが、まだまだ情報が少なく苦労する状態。
特に取得・判別系が分からなかったので、自分用にメモしときます。

構成はこんな感じ。

■カスタム投稿タイプ(custom post)
slug : ‘event’
ラベル : イベント情報

■カスタム分類(taxonomy)
slug : ‘event-category’
ラベル : イベント情報カテゴリ

[イベント情報カテゴリ] 内
├ ワークショップ ( workshop )
├ レポート ( report )

└ その他 ( etc )

[php]
label; //取得結果:’イベント情報’

//クエリからtaxonomy(カスタム分類タクソノミー)のslug取得
$taxonomy_var = get_query_var(‘taxonomy’); //取得結果:’event-category’

//クエリからterm(カスタム分類タクソノミー内のカテゴリ)のslug取得
$term_var = get_query_var( ‘term’ ); //取得結果:’workshop’

//termの情報を取得
$my_term = get_term_by(‘slug’, get_query_var( ‘term’ ), get_query_var( ‘taxonomy’ ) );

//termのラベルを取得
$term_name = $my_term->name; //取得結果:’ワークショップ’
?>
[/php]

だいたいこれをテンプレートの先頭に書いてたりすると便利です。
header.php ではCSSの切替などで重宝します。

メモ)
もし header.php に上記のような変数を定義していても、それをget_header()で読み込んだテンプレート上では参照できない。
そんな時はheader.phpをWP関数じゃなくてPHPの関数(includeやrequire)で読み込べば参照できるようになる。
[php]
get_header();

include( TEMPLATEPATH . ‘/header.php’);
[/php]

カスタム投稿タイプとカスタム分類の取得や条件判別” への3件のフィードバック

  1. 我流先生お世話になっております。
    タクソノミーのラベル名を取得したくてさまよっておりました。
    先生の記事を参考にさせていただき解決しました。

    ありがとうございます!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


*