
如何使用浏览器检查元素工具
render_block_core_site_logo ( $attributes )
render_block_core_site_logo: 这个函数用来渲染WordPress中的网站标志块。网站标志块显示一个网站的标志,用户可以自定义: 这个函数负责生成网站标志块的HTML标记。
在服务器上渲染`core/site-logo’区块。
function render_block_core_site_logo( $attributes ) { $adjust_width_height_filter = function ( $image ) use ( $attributes ) { if ( empty( $attributes['width'] ) || empty( $image ) || ! $image[1] || ! $image[2] ) { return $image; } $height = (float) $attributes['width'] / ( (float) $image[1] / (float) $image[2] ); return array( $image[0], (int) $attributes['width'], (int) $height ); }; add_filter( 'wp_get_attachment_image_src', $adjust_width_height_filter ); $custom_logo = get_custom_logo(); remove_filter( 'wp_get_attachment_image_src', $adjust_width_height_filter ); if ( empty( $custom_logo ) ) { return ''; // Return early if no custom logo is set, avoiding extraneous wrapper div. } if ( ! $attributes['isLink'] ) { // Remove the link. $custom_logo = preg_replace( '#<a.*?>(.*?)</a>#i', '1', $custom_logo ); } if ( $attributes['isLink'] && '_blank' === $attributes['linkTarget'] ) { // Add the link target after the rel="home". // Add an aria-label for informing that the page opens in a new tab. $aria_label = 'aria-label="' . esc_attr__( '(Home link, opens in a new tab)' ) . '"'; $custom_logo = str_replace( 'rel="home"', 'rel="home" target="' . esc_attr( $attributes['linkTarget'] ) . '"' . $aria_label, $custom_logo ); } $classnames = array(); if ( empty( $attributes['width'] ) ) { $classnames[] = 'is-default-size'; } $wrapper_attributes = get_block_wrapper_attributes( array( 'class' => implode( ' ', $classnames ) ) ); $html = sprintf( '<div %s>%s</div>', $wrapper_attributes, $custom_logo ); return $html; }