如何在wordpress自定义背景中将CSS属性添加到背景大小支持

时间:2015-04-16 04:01:29

标签: css wordpress

我正在尝试在自定义背景中添加对CSS3属性background-size,background-clip和background-origin的支持。为此,我修改了完全后台管理器插件(一个非常简单的插件,每页设置自定义背景),以设置这些属性。

它们似乎在管理界面中正确设置和存储,但在生成设置它们的样式标记时,新值将被忽略;唯一支持的属性似乎是http://codex.wordpress.org/Custom_Backgrounds

中提到的属性

自定义背景由Wordpress本身生成,而不是主题。我知道主题必须通过声明自身兼容并使用

设置默认值来启用它

add_theme_support( 'custom-background', $defaults );
and Wordpress will generate the custom-background css code

<style type="text/css" id="custom-background-css">
body.custom-background { background-color: #bdd96e; }
</style>

插件本身似乎使用

add_filter( 'theme_mod_background_image', array( $this, 'fbm_background_image' ), 25 );

设置/覆盖默认的css属性,如'theme_mod_background_image',但它只打印受支持/覆盖变量的css。换句话说,Wordpress不知道theme_mod_background_size,所以它不能覆盖它来打印它。

有没有办法将这些属性添加到Wordpress本身?我正在阅读admin / custom-background.php的代码,但是我没有看到对支持的属性列表的任何引用。他们在一些隐藏的包含?在数据库本身?如果我要设置它们,wordpress会生成CSS吗?

我希望我已经正确解释了它。我没有发现任何相关信息。大多数插件使用jQuery在javascript中设置这些值,而不是使用正确的CSS属性。如果没有,关于最新版本的wordpress本身的内部工作原理的教程可以作为调查的线索。

提前致谢

3 个答案:

答案 0 :(得分:1)

将回调参数wp-head-callback与自定义函数一起使用:

add_theme_support( 'custom-background', array( 'wp-head-callback'=> 'my_custom_background_cb' ) );

您可以替换复制和修改它的整个默认_custom_background_cb回调函数,但如果没有必要,我不想复制代码,所以我会这样做:

function my_custom_background_cb() {
    ob_start();
    _custom_background_cb();
    $buffer = ob_get_clean();

    $my_style = "
        background-size: 80px 60px;
        background-clip: border-box;
        background-origin: content-box;
    ";

    echo str_replace('</', $my_style.'</', $buffer);
}

我从_custom_background_cb获取原始代码,然后我可以在回显之前添加我的样式代码。

显然,您需要输入$my_style属性数据。

答案 1 :(得分:1)

我正在阅读here,它似乎就像使用css引用你的自定义函数一样简单,就像管理头回调的参数一样简单......

<?php
 add_theme_support( 'custom-background', array('wp-head-callback' => custom_function));

    function custom_function() {
        echo '<style>';
        //your custom css
        echo '</style>';
    }

答案 2 :(得分:0)

为什么不使用admin head回调函数添加其他CSS?