私の解決策は、WP_Customize_Image_Control クラスを拡張して .ico ファイルを受け入れることでした。これを行うには、次のコードで「customize-favicon.php」という名前の新しいファイルを作成します。
<?php
class SO_Customize_Favicon_Control extends WP_Customize_Image_Control {
public function __construct( $manager, $id, $args ) {
$this->extensions[] = 'ico';
return parent::__construct( $manager, $id, $args );
}
}
?>
次に、customize_register コールバック関数で、新しいファイルにインクルードを追加し、標準のイメージ コントロール クラスを作成したばかりのものに置き換えます。
include 'customize-favicon.php';
$wp_manager->add_control( new Custom_Customize_Favicon_Control( $wp_manager, 'favicon_image', array(
'label' => 'Favicon Image (16x16 px or 32x32 px)',
'section' => 'some_global_section',
'settings' => 'favicon_image',
'priority' => 1,
) ) );