web-dev-qa-db-ja.com

カスタム投稿タイプのすべての画像にCSSクラスを追加する方法

カスタム投稿タイプのすべての画像にCSSクラスを追加しようとしています。

私は この答え を見つけました。一般的にすべての画像にクラスを追加します。

function add_image_class($class){
    $class .= ' additional-class';
    return $class;
}
add_filter('get_image_tag_class','add_image_class');

カスタム投稿タイプにのみ適用されるようにするには、どうすればよいでしょうか。

4
Dvaeer

ここでの答えと@cjcjによる答えを この答え のコードと組み合わせると、ループの外で私のために働くコードはfunctions.phpです。

// Add ability to check for custom post type outside the loop. 
function is_post_type($type){
    global $wp_query;
    if($type == get_post_type($wp_query->post->ID)) return true;
    return false;
}

// Add class to every image in 'wpse' custom post type.
function add_image_class($class){
    if ('wpse' == is_post_type()){
        $class .= ' additional-class';
    }
    return $class;
}
add_filter('get_image_tag_class','add_image_class');
5
Dvaeer

関数 get_post_type は現在の投稿のタイプを返すので、このクラスを 'wpse'という投稿タイプにのみ追加したいとします。次のような条件付き

function wpse237573_add_image_class($class){
    if ('wpse' == get_post_type()) $class .= ' additional-class';
    return $class;
}
add_filter('get_image_tag_class','wpse237573_add_image_class');
3
cjbj