web-dev-qa-db-ja.com

カスタム分類法のin_categoryのような機能

選択した分類法に応じて異なるコンテンツを表示しようとしています。たとえば、Typeという分類法があります。その分類法の中に私は何人かの異なる子供がいます、そのうちの1人は「写真」です。私はそれがサイドバーを持っているのではなく全幅を持っていることを "写真"のシングルにしたいのです。 "if in_category( 'photography')"を使ってこれを通常の投稿で行うことができますが、私は過去数時間を費やしてthe_termsなどを正しく機能させようとしました。

助けてくれてありがとう。

- ピート

2
pete_schuster

やってみる

function has_type( $type, $_post = null ) {
    if ( empty( $type) )
        return false;

    if ( $_post )
        $_post = get_post( $_post );
    else
        $_post =& $GLOBALS['post'];

    if ( !$_post )
        return false;

    $r = is_object_in_term( $_post->ID, 'type', $type);

    if ( is_wp_error( $r ) )
        return false;

    return $r;
}

使用法:

<?php if ( has_type( 'Photography' ) ) /* do your thing*/ ?>

お役に立てれば。

4
Bainternet

WP 3.1には、wp-includes/category-template.phpにある便利なhas_term()関数があります。

6
scribu