{"id":19002706,"date":"2026-08-25T14:55:05","date_gmt":"2026-08-25T14:55:05","guid":{"rendered":"https:\/\/wordpress.org\/support\/topic\/bug-attribution-links-broken-by-missing-quote-class-venomaps-plugin-php718\/"},"modified":"2026-08-25T14:55:05","modified_gmt":"2026-08-25T14:55:05","slug":"bug-attribution-links-broken-by-missing-quote-class-venomaps-plugin-php718","status":"publish","type":"topic","link":"https:\/\/wordpress.org\/support\/topic\/bug-attribution-links-broken-by-missing-quote-class-venomaps-plugin-php718\/","title":{"rendered":"Bug: attribution links broken by missing quote (class-venomaps-plugin.php:718)"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Hi Nicola,<br \/><br \/>We noticed VenoMaps&#8217; attribution links resolve to broken URLs, and tracked it to a missing closing quote in the attribution builder.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">In <code>include\/class-venomaps-plugin.php<\/code> line 718 (v2.1.7):<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">php<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$attribution .= ' &lt;a href=\"' . $attrib&#091;'link'] . ' target=\"_blank\"&gt;' . $attrib&#091;'title'] . '&lt;\/a&gt; |';<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The href value parses as <code>https:\/\/www.stadiamaps.com\/ target=<\/code> instead of the URL, so browsers resolve it to <code>https:\/\/www.stadiamaps.com\/%20target=<\/code> \u2014 a 404. This affects every provider in the attribution array (Stadia Maps, Stamen, OpenMapTiles, OSM, Maptiler, Thunderforest), so all attribution links on all installs are currently dead.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Suggested fix:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">php<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$attribution .= ' &lt;a href=\"' . esc_url( $attrib&#091;'link'] ) . '\" target=\"_blank\" rel=\"noopener\"&gt;' . esc_html( $attrib&#091;'title'] ) . '&lt;\/a&gt; |';<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">(Added <code>esc_url<\/code>\/<code>esc_html<\/code> and <code>rel=\"noopener\"<\/code> while we&#8217;re in there, but the quote is the actual bug.)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Happy to help test. Thanks for building a privacy-friendly mapping plugin \u2014 we&#8217;re glad Stamen styles are in it.<br \/><br \/>Thanks!<\/p>\n","protected":false},"template":"","class_list":["post-19002706","topic","type-topic","status-publish","hentry"],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/support\/wp-json\/wp\/v2\/topic\/19002706","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/support\/wp-json\/wp\/v2\/topic"}],"about":[{"href":"https:\/\/wordpress.org\/support\/wp-json\/wp\/v2\/types\/topic"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.org\/support\/wp-json\/wp\/v2\/topic\/19002706\/revisions"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/support\/wp-json\/wp\/v2\/media?parent=19002706"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}