web-dev-qa-db-fra.com

post_thumbnail_html uniquement pour une taille de pouce spécifique

J'ai créé une taille de miniature personnalisée (dans mon function.php) appelée "thumb-bookmark" et je voulais leur ajouter un lien permanent, mais je ne sais pas comment cibler uniquement cette taille avec ce code:

function thumb_bookmark_html( $html, $post_id, $post_image_id, $size ) {
    $html = '<a class="MyClass" href="' . get_permalink( $post_id ) . '" alt="' . esc_attr( get_the_title( $post_id ) ) . '">' . $html . '</a>';
    return $html;   
}
add_filter( 'post_thumbnail_html', 'thumb_bookmark_html', 10, 3 );

J'ai essayé d'ajouter quelque chose comme

$size = get_the_post_thumbnail('thumb-bookmark');

mais comme je suis un noob débutant avec php, ça n'a pas fonctionné bien sûr: p

Je fais des recherches sur Google depuis des heures sans succès, donc toute aide sera beaucoup plus agréable :) Merci

1
dragoeco

Vous obtenez la taille en tant que $size en tant que 4ème argument de votre fonction de rappel. Vous devez juste utiliser une instruction if pour le vérifier:

function thumb_bookmark_html( $html, $post_id, $post_image_id, $size ) {
    if ( $size === 'thumb-bookmark' ) {
        $html = '<a class="MyClass" href="' . get_permalink( $post_id ) . '" alt="' . esc_attr( get_the_title( $post_id ) ) . '">' . $html . '</a>';
    }

    return $html;   
}
add_filter( 'post_thumbnail_html', 'thumb_bookmark_html', 10, 4 );

Notez également que j'ai changé 3 en 4 dans la fonction add_filter(). Cela garantit que je reçois tous les 4 arguments dans la fonction de rappel.

1
Jacob Peattie