主题定制器自定义背景/标题图像

时间:2013-11-20 作者:Markus Schober

我正在研究一个主题,其中包含一些更改设计的选项。对于选项,我使用主题定制器。主题定制器有许多选项类型,如颜色、上载、图像上载、背景图像和标题图像。我正在使用以下代码添加背景图像控件:

function tcx_register_theme_customizer( $wp_customize ) {
    $wp_customize->add_section(
            \'tcx_advanced_options\',
            array(
                    \'title\'     => \'Advanced Options\',
                    \'priority\'  => 201
            )
    );

    $wp_customize->add_setting(
            \'tcx_background_image\',
            array(
                \'default\'      => \'\',
                \'transport\'    => \'postMessage\'
            )
    );

    $wp_customize->add_control(
            new WP_Customize_Background_Image_Control(
                    $wp_customize,
                    \'tcx_background_image\',
                    array(
                        \'label\'    => \'Background Image\',
                        \'settings\' => \'tcx_background_image\',
                        \'section\'  => \'tcx_advanced_options\'
                    )
            )
    );
}
add_action( \'customize_register\', \'tcx_register_theme_customizer\' );
但该控件不会显示在主题定制器中。标题图像也一样。”“图像上传”、“上传”和所有其他类型,如“文本”、“广播”等,都可以正常工作。我不想用它add_theme_support 因为我不想在“设计”部分下显示菜单项,因为这会让客户感到困惑。(我英语不好的原因:))

更新:这就是我正在使用的代码。Wordpress内置背景图像的新部分、新设置和控件。

2 个回复
SO网友:davidcondrey

下面是我使用的一些代码,它在标题和标语部分放置一个控件来添加徽标图像。。

$wp_customize->add_setting( \'theme_logo\' );
$wp_customize->add_control( 
    new WP_Customize_Image_Control(
        $wp_customize,\'theme_logo\',array(
            \'label\' => \'Logo\',
            \'section\' => \'title_tagline\',
            \'settings\' => \'theme_logo\',
            \'priority\' => 1
        )
    )
);
然后我在标题中调用它。带有此位的php。。

<?php if( get_theme_mod( \'theme_logo\' ) != \'\') { ?> // if there is a logo img
    <img src="<?php echo get_theme_mod(\'tonic_logo\'); ?>">
<?php } ?>
对于背景图像,您可以使用与徽标完全相同的东西。。

$wp_customize->add_setting( \'theme_header_bg\' );
$wp_customize->add_control( 
    new WP_Customize_Image_Control(
        $wp_customize,\'theme_header_bg\',array(
            \'label\' => \'Header Background Image\',
            \'section\' => \'title_tagline\',
            \'settings\' => \'theme_header_bg\',
            \'priority\' => 2
        )
    )
);
我们已经以与其他图像(徽标)相同的方式设置了所有控件。现在转到页眉。php我们只是称之为略有不同,所以它显示为背景,而不是img。。

<?php 
    if( get_theme_mod( \'theme_header_bg\' ) != \'\') { // if there is a background img
        $theme_header_bg = get_theme_mod(\'theme_header_bg\'); // Assigning it to a variable to keep the markup clean
    }
?>

<header style="background-image:url(\'<?php echo $theme_header_bg ?>\');">  

SO网友:user181600

谢谢,但我添加了另一个来修复bug(至少在家;-)

if( get_theme_mod( \'theme_header_bg\' ) != \'\') { // if there is a background img
    $theme_header_bg = get_theme_mod(\'theme_header_bg\'); // Assigning it to a variable to keep the markup clean
} else {
    $theme_header_bg = ""
}

结束

相关推荐