From 5fa77839fed8a39396f9ecd30e7f5c8f2eccdba5 Mon Sep 17 00:00:00 2001 From: Sergey Biryukov Date: Tue, 13 Oct 2020 15:02:23 +0000 Subject: [PATCH] Sitemaps: Check the result of `get_term_link()` when collecting the URLs in `WP_Sitemaps_Taxonomies::get_url_list()`. This avoids a PHP warning during sitemap generation if `get_term_link()` returns an error, e.g. due to term ID being shared between multiple taxonomies. Additionally, pass the `$taxonomy` argument to `get_term_link()` to properly disambiguate the call. Props dd32. Fixes #51416. git-svn-id: https://develop.svn.wordpress.org/trunk@49137 602fd350-edb4-49c9-b593-d223f7449a82 --- .../sitemaps/providers/class-wp-sitemaps-taxonomies.php | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/wp-includes/sitemaps/providers/class-wp-sitemaps-taxonomies.php b/src/wp-includes/sitemaps/providers/class-wp-sitemaps-taxonomies.php index 31515f806a..e8fcc6d5ab 100644 --- a/src/wp-includes/sitemaps/providers/class-wp-sitemaps-taxonomies.php +++ b/src/wp-includes/sitemaps/providers/class-wp-sitemaps-taxonomies.php @@ -99,8 +99,14 @@ class WP_Sitemaps_Taxonomies extends WP_Sitemaps_Provider { if ( ! empty( $taxonomy_terms->terms ) ) { foreach ( $taxonomy_terms->terms as $term ) { + $term_link = get_term_link( $term, $taxonomy ); + + if ( is_wp_error( $term_link ) ) { + continue; + } + $sitemap_entry = array( - 'loc' => get_term_link( $term ), + 'loc' => $term_link, ); /**