web-dev-qa-db-ja.com

カスタマイズテーマページを有効にしてSVGを受け入れるにはどうすればよいですか。

私は現在、ユーザーがテーマのカスタマイズページを介してロゴをアップロードできるようにするテーマに取り組んでいます。

ユーザーにSVGをロゴとしてアップロードできるようにしたいです。

WordpressはSVGをデフォルトでアップロードすることを許可していません。そこで私はSVGをde media uploaderで有効にするためにコードの断片を使いました。

function cc_mime_types( $mimes ){
    $mimes['svg'] = 'image/svg+xml';
    return $mimes;
}
add_filter( 'upload_mimes', 'cc_mime_types' );

私はこれも私がカスタマイズテーマページ(customize.php)を通してSVGをアップロードすることを可能にするだろうと考えました。

これはうまくいかないようです。

通常のメディアアップローダを使ってSVGをアップロードすると、ファイルは正常にアップロードされます。カスタマイズテーマページの私のロゴアップローダを介してSVGをアップロードしようとしても、何も起こりません。エラーではありません。

カスタマイズテーマページを介してロゴのアップロードを有効にするための私のコード:

function themeslug_theme_customizer( $wp_customize ) {
    $wp_customize->add_section( 'themeslug_logo_section' , array(    
    'title'       => __( 'Logo', 'themeslug' ),
    'priority'    => 30,
    'description' => 'Upload a logo to replace the default site name and description     in the header',
) );
$wp_customize->add_setting( 'themeslug_logo' );
$wp_customize->add_control( new WP_Customize_Image_Control( $wp_customize,     'themeslug_logo', array(
    'label'    => __( 'Logo', 'themeslug' ),
    'section'  => 'themeslug_logo_section',
    'settings' => 'themeslug_logo',
) ) );
}
add_action('customize_register', 'themeslug_theme_customizer');

カスタマイズテーマページに対してSVGアップロードを有効にする方法を誰かが知っていますか?

2
user25312

WP_Customize_Image_Controlの有効な拡張子のリストに "svg"を追加する必要があります。

$wp_customize->add_control(
    new WP_Customize_Image_Control(
        $wp_customize,
        'themeslug_logo',
        array(
            'label'      => __( 'Logo', 'themeslug' ),
            'section'    => 'themeslug_logo_section',
            'settings'   => 'themeslug_logo',
            'extensions' => array( 'jpg', 'jpeg', 'gif', 'png', 'svg' ),
        )
    )
);
4
TheDeadMedic