web-dev-qa-db-fra.com

Tailles de logo personnalisées pour plusieurs logos

J'utilise

add_theme_support('custom-logo', array(
// The logo will be displayed with the following sizes:
    'width' => 200,
    'height' => 200,
));

pour afficher une image de logo dans ma barre latérale.

dans functions.php, j'ai défini la taille du grand logo:

add_theme_support('custom-logo', array(
// The logo will be displayed with the following sizes:
    'width' => 200,
    'height' => 200,
));

Cependant, j'aimerais aussi utiliser le même logo dans l'en-tête, mais avec une taille de 80x80px. Cela signifie que je dois définir deux tailles différentes pour the_custom_logo. Est-ce possible? Si c'est le cas, comment?

J'ai essayé d'utiliser add_image_size mais je pense que c'est une erreur, donc je ne sais pas trop comment faire cela.

3
Arete

Il est possible de modifier la taille du logo personnalisé avec:

// Modify the custom logo size
add_filter( 'image_downsize', 'wpse241257_new_custom_logo_size', 10, 3 );

// Display the custom logo
the_custom_logo();

où notre rappel de filtre est défini comme ( PHP 5.4+ ):

function wpse241257_new_custom_logo_size( $downsize, $id, $size )
{
    //-------------------
    // Edit to your needs
    $size = [80,80];          // Array of width and height
    // $size = 'thumbnail';   // String value of the image size name
    //-------------------

    remove_filter( current_filter(), __FUNCTION__ ); // Important to avoid recursive loop
    return image_downsize( $id, $size );
}
2
birgire