使用WP_Customize_Cropt_Image_Control时,Get_Theme_mod输出数字

时间:2016-09-19 作者:Heather

我已经向自定义程序添加了几个部分,但在尝试调用我定义的图像时遇到了问题。后端工作得很好,但当我使用get_theme_mod 它是一个两位数,比如23。我在主题定制器中有几个部分(非图像),没有任何问题。

在里面functions.php (简化为这一个示例):

function theme_customize_register( $wp_customize ) {
    $wp_customize->add_section( \'theme_about\' , array(
    \'title\'      => __( \'About\', \'theme\' ),
    \'description\' => \'Add phone, email, and social buttons\'
    ) );

    $wp_customize->add_setting( \'about_facebook_logo\' );
    $wp_customize->add_control( new WP_Customize_Cropped_Image_Control( $wp_customize, \'about_facebook_logo\' , array(
    \'label\' => __(\'Facebook Image\', \'theme\'),
    \'section\' => \'theme_about\',
    \'settings\' => \'about_facebook_logo\',
    \'flex_width\'  => true,
    \'flex_height\' => true,
    \'width\'       => 46,
    \'height\'      => 46,
    ) ));
}
add_action( \'customize_register\', \'theme_customize_register\' );
在我的footer.php:

<?php echo get_theme_mod( \'about_facebook_logo\' ); ?>
这将输出数字23。

ANSWER

幸亏Rarst\'s 在下面的思考中,我想出了一个解决方案。

<?php $fbID = get_theme_mod( \'about_facebook_logo\' );
      echo wp_get_attachment_url( $fbID ); ?>

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

我不太熟悉代码中的Customizer部分,但我立即猜测上传图像的附件ID是

IDs是在WP安装中存储到特定媒体项的连接的最典型、最可靠的方法。从ID到其他表示(例如指向不同图像大小的URL)是很简单的。然而,反向操作非常困难,例如确定仲裁图像URL的ID(如果有)。

您可以检查数字是否与admin中的ID匹配(通常在URL中公开),并在其上使用API函数(例如wp_get_attachment_image_src() 和其他)。