我们的旅程开始了here
使用WP_Customize_Background_Image_Control
类,它是WP_Customize_Image_Control
.
我可以想象在现有的基础上,在新的选项卡中提供这些内置背景Upload New
和Uploaded
选项卡。至少有两种方法可以实现以下目标:或者根据WP_Customize_Background_Image_Control
类,或通过劫持全局$wp_customize
相反前者是一条更长的路(尽管可能更干净),我们首先要定义我们的新控制:
class WP_Customize_Background_Image_Control_Defaults extends WP_Customize_Background_Image_Control {
public function __construct( $manager ) {
...
$this->add_tab( \'builtins\', __(\'Built-ins\'), array( $this, \'tab_builtins\' ) );
...
public function tab_builtins() {
...
}
然后删除默认的背景图像控件
registered by default 并添加我们自己的新类:
add_action( \'customize_register\', function( $wp_customize ) {
/* Substitute the default control for our new one */
$wp_customize->remove_control( \'background_image\' );
$wp_customize->add_control( new WP_Customize_Background_Image_Control_Defaults( $wp_customize ) );
}, 11, 1 );
然后,新选项卡将简单地回显主题附带的一组预定义图像,类似于默认
tab_uploaded
具有轻微调整的功能。无论是使用自定义类还是尝试更快的方法,此函数都是相同的。
更快、更紧凑的方法包括在初始化后使默认控件与我们的音调同步,如下所示:
add_action( \'customize_register\', function( $wp_customize ) {
$control = $wp_customize->get_control( \'background_image\' );
$control->add_tab( \'builtins\', __(\'Built-ins\'), function() {
/* Supply a list of built-in background that come with your theme */
$backgrounds = array(
\'images/bg-01.png\', \'images/bg-02.png\', ...
);
global $wp_customize;
$control = $wp_customize->get_control( \'background_image\' );
foreach ( (array) $backgrounds as $background )
$control->print_tab_image( esc_url_raw( get_stylesheet_directory_uri() . \'/\' . $background ) );
} );
}, 11, 1 );
同样,如果你选择使用自己的类,你也会这样做,
add_tab
其中
print_tab_image
在所有预设背景上。非常简单。我相信您可以用各种零碎的东西进一步改进代码,但总体而言,我认为这是一条路要走。
欢迎提出问题、想法和想法。