使用wp_get_attachment_image_src
要获取图像属性和URL,请执行以下操作:
$logo = get_theme_mod( \'custom_logo\' );
$image = wp_get_attachment_image_src( $logo , \'full\' );
$image_url = $image[0];
$image_width = $image[1];
$image_height = $image[2];
Edit:
根据您的评论添加更多信息它指向的URL只需使用home_url
:
esc_url( home_url( \'/\' ) );
使用此方法时,另一件经常被忘记的事情是,如果alt的内容在媒体中设置,则要尊重alt的内容:
$alt = get_post_meta( $logo, \'_wp_attachment_image_alt\', true );
if ( empty( $alt ) ) {
// Use site title if no alt is provided.
$alt = get_bloginfo( \'name\', \'display\' );
}
我鼓励你看看
get_custom_logo 因为它会使用其中的大部分。
如果您正在开发此主题以在上发布,也值得一提WordPress.org/themes - 这是使用the_custom_logo
或get_custom_logo
过度推出自己的解决方案。
因此,中的HTML输出有一个过滤器get_custom_logo
, 使用和替换所需的位可能是最好的。功能get_custom_logo
(使用人the_custom_logo
) 还可以像处理多站点一样处理,并确保占位符用于自定义程序预览。用法如下:
add_action( \'get_custom_logo\', function( $html ) {
$new_url = \'href="\' . get_theme_mod( \'custom_logo_url\', esc_url( home_url( \'/\' ) ) ) .\'"\';
$new_link_class = \'class="box-link"\';
$html = str_replace( \'href="\' . esc_url( home_url( \'/\' ) ) . \'"\', $new_url, $html );
$html = str_replace( \'class="custom-logo-link"\', $new_link_class, $html );
return $html;
} );
这将读取theme\\u mod的值
custom_logo_url
它可以来自customizer控件,并从
.custom-logo-link
到
.box-link
在您的示例中。