web-dev-qa-db-fra.com

Comment ajouter une classe CSS à chaque image d'un type de publication personnalisé

J'essaie d'ajouter une classe CSS à chaque image d'un type d'article personnalisé.

J'ai trouvé cette réponse , pour ajouter une classe à chaque image en général:

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

Comment pourrais-je construire sur cela, de sorte que cela ne s'applique qu'à un type de publication personnalisé?

4
Dvaeer

En combinant la réponse ici @cjcj avec le code dans cette réponse , le code qui fonctionne pour moi en dehors de la boucle dans functions.php est:

// 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

La fonction get_post_type renvoie le type de publication en cours. Par conséquent, si vous souhaitez ajouter cette classe uniquement à un type de publication appelé "wpse", vous devez inclure une condition comme celle-ci:

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