diff --git a/wp-includes/general-template.php b/wp-includes/general-template.php
index 6c3a1ff991..1c795b06ca 100644
--- a/wp-includes/general-template.php
+++ b/wp-includes/general-template.php
@@ -1024,12 +1024,13 @@ function has_custom_logo( $blog_id = 0 ) {
}
$custom_logo_id = get_theme_mod( 'custom_logo' );
+ $is_image = wp_attachment_is_image( $custom_logo_id );
if ( $switched_blog ) {
restore_current_blog();
}
- return (bool) $custom_logo_id;
+ return $is_image;
}
/**
@@ -1052,10 +1053,9 @@ function get_custom_logo( $blog_id = 0 ) {
$switched_blog = true;
}
- $custom_logo_id = get_theme_mod( 'custom_logo' );
-
// We have a logo. Logo is go.
- if ( $custom_logo_id ) {
+ if ( has_custom_logo() ) {
+ $custom_logo_id = get_theme_mod( 'custom_logo' );
$custom_logo_attr = array(
'class' => 'custom-logo',
'loading' => false,
@@ -1097,21 +1097,25 @@ function get_custom_logo( $blog_id = 0 ) {
*/
$image = wp_get_attachment_image( $custom_logo_id, 'full', false, $custom_logo_attr );
- if ( $unlink_homepage_logo && is_front_page() && ! is_paged() ) {
- // If on the home page, don't link the logo to home.
- $html = sprintf(
- '%1$s',
- $image
- );
- } else {
- $aria_current = is_front_page() && ! is_paged() ? ' aria-current="page"' : '';
+ // Check that we have a proper HTML img element.
+ if ( $image ) {
- $html = sprintf(
- '%3$s',
- esc_url( home_url( '/' ) ),
- $aria_current,
- $image
- );
+ if ( $unlink_homepage_logo && is_front_page() && ! is_paged() ) {
+ // If on the home page, don't link the logo to home.
+ $html = sprintf(
+ '%1$s',
+ $image
+ );
+ } else {
+ $aria_current = is_front_page() && ! is_paged() ? ' aria-current="page"' : '';
+
+ $html = sprintf(
+ '%3$s',
+ esc_url( home_url( '/' ) ),
+ $aria_current,
+ $image
+ );
+ }
}
} elseif ( is_customize_preview() ) {
// If no logo is set but we're in the Customizer, leave a placeholder (needed for the live preview).
diff --git a/wp-includes/theme.php b/wp-includes/theme.php
index 11b7bd9aa3..330c36d3f5 100644
--- a/wp-includes/theme.php
+++ b/wp-includes/theme.php
@@ -3434,6 +3434,7 @@ function get_registered_theme_feature( $feature ) {
* @since 3.0.0
* @since 4.3.0 Also removes `header_image_data`.
* @since 4.5.0 Also removes custom logo theme mods.
+ * @since 6.6.0 Also removes `site_logo` option set by the site logo block.
*
* @param int $id The attachment ID.
*/
@@ -3442,12 +3443,17 @@ function _delete_attachment_theme_mod( $id ) {
$header_image = get_header_image();
$background_image = get_background_image();
$custom_logo_id = get_theme_mod( 'custom_logo' );
+ $site_logo_id = get_option( 'site_logo' );
if ( $custom_logo_id && $custom_logo_id == $id ) {
remove_theme_mod( 'custom_logo' );
remove_theme_mod( 'header_text' );
}
+ if ( $site_logo_id && $site_logo_id == $id ) {
+ delete_option( 'site_logo' );
+ }
+
if ( $header_image && $header_image == $attachment_image ) {
remove_theme_mod( 'header_image' );
remove_theme_mod( 'header_image_data' );
diff --git a/wp-includes/version.php b/wp-includes/version.php
index e17b4ce99d..1ad6699e62 100644
--- a/wp-includes/version.php
+++ b/wp-includes/version.php
@@ -16,7 +16,7 @@
*
* @global string $wp_version
*/
-$wp_version = '6.6-alpha-58212';
+$wp_version = '6.6-alpha-58213';
/**
* Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.