私は現在、ユーザーがテーマのカスタマイズページを介してロゴをアップロードできるようにするテーマに取り組んでいます。
ユーザーに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アップロードを有効にする方法を誰かが知っていますか?
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' ),
)
)
);