替换_自定义_背景_CB

时间:2015-05-18 作者:Isak

我正在制作一个主题,其中我将使用此标准功能添加对自定义背景功能的支持:

// fig. 1

<?php

function custom_theme_support() {
        add_theme_support(\'custom-background\', array(
                \'default-color\'    => \'333333\',
                \'wp_head_callback\' => \'_custom_background_cb\'
        ));
}
add_action(\'after_setup_theme\', \'custom_theme_support\');

?>
然而,我对默认函数的使用方式感到满意_custom_background_cb 处理设置,因为它只提供了将背景图像水平居中的选项。所以我在我的functions.php 文件:

// fig. 2

<?php

function themeslug_custom_background() {

        $background = set_url_scheme(get_background_image());
        $color = get_background_color();

        if ($color === get_theme_support(\'custom-background\', \'default-color\')) { 
                $color = false;
        }

        if (!$background&&!$color) { 
                return;
        }

        $style = $color ? "background-color: #$color;" : false;

        if ($background) { 
                $style = "background: #$color url(\'$background\') no-repeat fixed; background-size: cover; background-position: center;";
        }
?>
        <style type="text/css" id="custom-background-css">
                body.custom-background { 
                        <?php echo trim($style); ?>
                }
        </style>
<?
        }
?>
并更改了wp_head_callback 如图1所示:

// fig. 3

function custom_theme_support() {
        add_theme_support(\'custom-background\', array(
                \'default-color\'    => \'333333\',
                \'wp_head_callback\' => \'themeslug_custom_background\'
        ));
}
add_action(\'after_setup_theme\', \'custom_theme_support\');
然而_custom_background_cb 仍然调用函数,而不是themeslug_custom_background 我创建了。

我知道此功能将使wp admin/customize窗口中的一些背景设置无效,但这是为了一个非常小的主题,对我来说,将背景居中比在wp admin中更改此设置更重要。

1 个回复
最合适的回答,由SO网友:Nicolai Grossherr 整理而成

你有

wp_head_callback
作为参数数组中的参数,这是错误的。

应该是这样的

wp-head-callback
这是正确的拼写。

由于拼写错误,默认值为wp-head-callback 这是_custom_background_cb 已使用,因为Wordpress不知道拼写错误-当然。

结束

相关推荐