web-dev-qa-db-ja.com

複数のロゴのカスタムロゴサイズ

使ってます

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

サイドバーにロゴ画像を表示します。

functions.phpで私は大きなロゴのサイズを設定しました:

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

ただし、ヘッダーにも同じロゴを使用したいのですが、サイズは80x80pxです。これはthe_custom_logoに2つの異なるサイズを設定する必要があることを意味します。これは可能ですか?もしそうならどうですか?

私はadd_image_sizeを使ってみましたが、これは間違っていると思いますので、どうやったらよいかわからないです。

2
Arete

カスタムロゴ のサイズを変更することは可能です:

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

// Display the custom logo
the_custom_logo();

フィルタコールバックは( 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 );
}
1
birgire