0

カスタム背景を持つWordpressテーマをコーディングしていますが、WPドキュメントには、各背景パラメーター(画像、色、位置など)の値を取得する関数については何もありませget_background_colorget_background_image

これは、カスタム背景をサポートするためのコードです。

$custom_background_support = array(
    'default-color'          => 'FFF',
    'default-image'          => '',
    'wp-head-callback'       => 'custom_background_cb'
);

if ( is_wp_version( '3.4' ) )
    add_theme_support( 'custom-background', $custom_background_support ); 
else
    add_custom_background( $custom_background_support );

そしてこれがコールバックです:

function academia_custom_background_cb()
{
?>
<style type="text/css">
body{
background-color: #<?=get_background_color();?> !important;
background-image: url('<?=get_background_image();?>');
background-position: ...
background-repeat: ...
...
}</style>
<?php
}

編集:これらは私が取得する必要のある値です。このスクリーンショットは、[外観]->[背景]からのものです。

外観->背景

4

2 に答える 2

1

古い質問ですが、同じ情報をグーグル検索で見つけました。クライクの答えを締めくくる、それは確かにget_theme_mod()

デフォルトで動作していることを確認できますwp-head-callback

/**
 * Default custom background callback.
 *
 * @since 3.0.0
 * @access protected
 */
function _custom_background_cb() {
    // $background is the saved custom image, or the default image.
    $background = set_url_scheme( get_background_image() );

    // $color is the saved custom color.
    // A default has to be specified in style.css. It will not be printed here.
    $color = get_theme_mod( 'background_color' );

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

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

    if ( $background ) {
        $image = " background-image: url('$background');";

        $repeat = get_theme_mod( 'background_repeat', 'repeat' );
        if ( ! in_array( $repeat, array( 'no-repeat', 'repeat-x', 'repeat-y', 'repeat' ) ) )
            $repeat = 'repeat';
        $repeat = " background-repeat: $repeat;";

        $position = get_theme_mod( 'background_position_x', 'left' );
        if ( ! in_array( $position, array( 'center', 'right', 'left' ) ) )
            $position = 'left';
        $position = " background-position: top $position;";

        $attachment = get_theme_mod( 'background_attachment', 'scroll' );
        if ( ! in_array( $attachment, array( 'fixed', 'scroll' ) ) )
            $attachment = 'scroll';
        $attachment = " background-attachment: $attachment;";

        $style .= $image . $repeat . $position . $attachment;
    }
?>
<style type="text/css" id="custom-background-css">
body.custom-background { <?php echo trim( $style ); ?> }
</style>
<?php
}

したがって、次のように繰り返し、位置、およびアタッチメントを取得します。

$repeat = get_theme_mod( 'background_repeat', 'repeat' ); 
$position = get_theme_mod( 'background_position_x', 'left' ); 
$attachment = get_theme_mod( 'background_attachment', 'scroll' );

2番目のパラメーターがデフォルトだと思います。

于 2013-01-30T14:55:33.507 に答える
0

100%確信はありませんが、あなたが探していると思いますget_theme_mod()-> http://codex.wordpress.org/Function_Reference/get_theme_mod

于 2012-06-19T09:23:00.050 に答える