From 52b86655f661bd6a520451076b20504fc3541e5e Mon Sep 17 00:00:00 2001 From: Dhrupo Nil Date: Mon, 27 Apr 2026 14:56:44 +0600 Subject: [PATCH] Embeds: Preserve site icon fallback URL --- src/wp-includes/general-template.php | 6 +++++- tests/phpunit/tests/general/template.php | 14 ++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/src/wp-includes/general-template.php b/src/wp-includes/general-template.php index 47e2aeb2ebb05..8a23add4521ec 100644 --- a/src/wp-includes/general-template.php +++ b/src/wp-includes/general-template.php @@ -978,7 +978,11 @@ function get_site_icon_url( $size = 512, $url = '', $blog_id = 0 ) { } else { $size_data = array( $size, $size ); } - $url = wp_get_attachment_image_url( $site_icon_id, $size_data ); + + $site_icon_url = wp_get_attachment_image_url( $site_icon_id, $size_data ); + if ( $site_icon_url ) { + $url = $site_icon_url; + } } if ( $switched_blog ) { diff --git a/tests/phpunit/tests/general/template.php b/tests/phpunit/tests/general/template.php index d3b35a2c46c2b..324c768ef8d58 100644 --- a/tests/phpunit/tests/general/template.php +++ b/tests/phpunit/tests/general/template.php @@ -122,6 +122,20 @@ public function test_get_site_icon_url() { $this->assertEmpty( get_site_icon_url(), 'Site icon URL should not be set after removal.' ); } + /** + * @ticket 65098 + * @group site_icon + * @covers ::get_site_icon_url + */ + public function test_get_site_icon_url_uses_fallback_when_site_icon_url_is_unavailable() { + update_option( 'site_icon', 999999 ); + + $this->assertSame( + 'https://example.org/fallback.png', + get_site_icon_url( 32, 'https://example.org/fallback.png' ) + ); + } + /** * @group site_icon * @covers ::site_icon_url