[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fgfkcYmSL2Jsn4rIdEz9-LS15pt6ibdfs_FLX6pijfVk":3,"$fC04ndaxtifUjmgwEw-5vB6PzxYsJe0TmLXkDV6kDOHY":489,"$fomp8epGMpwE5pdLNNzeTtpV6MC1vgyLN1jdig9HPaNo":493},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":13,"num_ratings":13,"last_updated":14,"tested_up_to":15,"requires_at_least":16,"requires_php":17,"tags":18,"homepage":23,"download_link":24,"security_score":25,"vuln_count":13,"unpatched_count":13,"last_vuln_date":26,"fetched_at":27,"discovery_status":28,"vulnerabilities":29,"developer":30,"crawl_stats":26,"alternatives":37,"analysis":145,"fingerprints":442},"travelling-blogger","TRAVELLING BLOGGER","1.1","maxime.rainville","https:\u002F\u002Fprofiles.wordpress.org\u002Fmaximerainville\u002F","\u003Cp>TRAVELLING BLOGGER allows you to mark the location of your posts and display them on a Google map widget.\u003C\u002Fp>\n\u003Cp>You can also set a “location page” that will allow you to display post organised by location.\u003C\u002Fp>\n\u003Cp>You can also display the location of a post by adding the following shortcode:\u003C\u002Fp>\n\u003Cp>[location_mini_map width=300 height=300 type=”hybrid”]\u003C\u002Fp>\n\u003Cp>“width” and “height” controls the dimension of the Google map. “type” allows you to choose what type of map to use. Valid values include : ROADMAP, SATELLITE, TERRAIN.\u003C\u002Fp>\n","TRAVELLING BLOGGER allows you to mark the location of your posts and display them on a Google map.",10,3082,0,"2012-01-22T00:51:00.000Z","3.2.1","3.2","",[19,20,21,22],"georss","kml","map","travel-blog","http:\u002F\u002Fwww.mattvanandel.com\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ftravelling-blogger.zip",85,null,"2026-03-15T15:16:48.613Z","no_bundle",[],{"slug":31,"display_name":7,"profile_url":8,"plugin_count":32,"total_installs":33,"avg_security_score":25,"avg_patch_time_days":34,"trust_score":35,"computed_at":36},"maximerainville",2,20,30,84,"2026-05-20T07:03:08.021Z",[38,64,88,109,128],{"slug":39,"name":40,"version":41,"author":42,"author_profile":43,"description":44,"short_description":45,"active_installs":46,"downloaded":47,"rating":48,"num_ratings":49,"last_updated":50,"tested_up_to":51,"requires_at_least":52,"requires_php":53,"tags":54,"homepage":58,"download_link":59,"security_score":60,"vuln_count":61,"unpatched_count":13,"last_vuln_date":62,"fetched_at":63},"osm","OSM – OpenStreetMap","6.1.17","MiKa","https:\u002F\u002Fprofiles.wordpress.org\u002Fphotoweblog\u002F","\u003Cp>Add a map with marker in less than 100 sec:\u003C\u002Fp>\n\u003Cspan class=\"embed-youtube\" style=\"text-align:center; display: block;\">\u003Ciframe loading=\"lazy\" class=\"youtube-player\" width=\"750\" height=\"422\" src=\"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FGDoiXO1SfJ0?version=3&rel=1&showsearch=0&showinfo=1&iv_load_policy=1&fs=1&hl=en-US&autohide=2&wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\">\u003C\u002Fiframe>\u003C\u002Fspan>\n\u003Cp>If you want to get detailed information about the OSM-plugin visit these pages:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Homepage: \u003Ca href=\"https:\u002F\u002Fwp-osm-plugin.hyumika.com\u002F\" title=\"OSM-plugin\" rel=\"nofollow ugc\">WP-OSM-Plugin\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Forum: \u003Ca href=\"https:\u002F\u002Fwp-osm-plugin.hyumika.com\u002Fsurvey\u002F\" title=\"OSM-plugin feedback \u002F feature request EN|DE\" rel=\"nofollow ugc\">EN|DE\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Twitter: \u003Ca href=\"https:\u002F\u002Ftwitter.com\u002Fwp_osm_plugin\" title=\"@WP_OSM_Plugin\" rel=\"nofollow ugc\">@WP_OSM_Plugin\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Features of the WP-OSM-plugin:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>OpenStreetMap, HOT, OpenSeaMap, OpenTopoMap, BaseMap (AT), Stamen in posts\u002Fpages\u003C\u002Fli>\n\u003Cli>Integration in post \u002F page \u002F widget\u003C\u002Fli>\n\u003Cli>HTML Popup Marker\u003C\u002Fli>\n\u003Cli>GPX and KML (incl. upload in Mediathek)\u003C\u002Fli>\n\u003Cli>Map with geo-tagged posts\u002Fpages as linked marker\u003C\u002Fli>\n\u003Cli>Map with autogenerated track by geo-tagged posts \u002F pages\u003C\u002Fli>\n\u003Cli>html-meta tags for geo-tagged posts\u002Fpages\u003C\u002Fli>\n\u003Cli>uses OpenLayers Library\u003C\u002Fli>\n\u003Cli>SSL connection (https)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Languages – thanks to:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>English\u003C\u002Fli>\n\u003Cli>Deutsch\u003C\u002Fli>\n\u003Cli>Japanese [by Sykane]\u003C\u002Fli>\n\u003Cli>French [by Tounoki and Marc]\u003C\u002Fli>\n\u003Cli>Russian [by Вячеслав Стренадко\u002FVyacheslav Strenadko]\u003C\u002Fli>\n\u003Cli>Italian [by Andrea Giacomelli]\u003C\u002Fli>\n\u003Cli>Spanish [by Colegota]\u003C\u002Fli>\n\u003Cli>Romanian [by Sorin Pop]\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Swedish [by Olle Zettergren]\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Ca href=\"http:\u002F\u002Fopenlayers.org\" rel=\"nofollow ugc\">OpenLayers\u003C\u002Fa>: Open Source JavaScript, released under the 2-clause BSD\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>!! IMPORTANT !!\u003Cbr \u002F>\nThe WordPress Plugin Review Team required us to provide opt-in feature to display attribution since it is part of \u003Ca href=\"https:\u002F\u002Fdeveloper.wordpress.org\u002Fplugins\u002Fwordpress-org\u002Fdetailed-plugin-guidelines\u002F#10-plugins-may-not-embed-external-links-or-credits-on-the-public-site-without-explicitly-asking-the-user%e2%80%99s-permission\" rel=\"nofollow ugc\">WordPress Plugin Guidelines\u003C\u002Fa>. So you have to enable the checkbox “Display attribution (credit) in the map.” at the WP OSM Plugin Shortcode generater or add the attribution manually to your map. Otherwise it may violate the map or data license, eg \u003Ca href=\"https:\u002F\u002Fwww.openstreetmap.org\u002Fcopyright\" rel=\"nofollow ugc\">OpenStreetMap\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>This plugin enables GPX and KML upload!\u003C\u002Fp>\n\u003Cp>Licenses of the maps:\u003Cbr \u002F>\n* OpenStreetMap: \u003Ca href=\"https:\u002F\u002Fwww.openstreetmap.org\u002Fcopyright\" rel=\"nofollow ugc\">OpenStreetMap License\u003C\u002Fa>\u003Cbr \u002F>\n* OpenTopoMap: \u003Ca href=\"https:\u002F\u002Fopentopomap.org\u002Fabout\" rel=\"nofollow ugc\">OpenTopoMap License\u003C\u002Fa>\u003Cbr \u002F>\n* Stamen Maps: \u003Ca href=\"http:\u002F\u002Fmaps.stamen.com\" rel=\"nofollow ugc\">Stamen License\u003C\u002Fa>\u003Cbr \u002F>\n* BaseMap:  \u003Ca href=\"http:\u002F\u002Fbasemap.at\" rel=\"nofollow ugc\">BaseMap License\u003C\u002Fa>\u003Cbr \u002F>\n* Thunderforest (API key): \u003Ca href=\"http:\u002F\u002Fwww.thunderforest.com\u002Fterms\u002F\" rel=\"nofollow ugc\">Thunderforest License\u003C\u002Fa>\u003Cbr \u002F>\n* Others: Depends on the map you are including – check it before including it!\u003C\u002Fp>\n","Customize maps in your post, pages and widgets. GPX, KML and more. The easy way to map!",10000,663165,92,135,"2026-04-11T12:39:00.000Z","6.9.4","3.0","5.3",[55,20,56,57,39],"gpx","openseamap","openstreetmap","https:\u002F\u002Fwp-osm-plugin.hyumika.com","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fosm.6.1.17.zip",86,9,"2026-04-08 00:00:00","2026-04-16T10:56:18.058Z",{"slug":65,"name":66,"version":67,"author":68,"author_profile":69,"description":70,"short_description":71,"active_installs":72,"downloaded":73,"rating":74,"num_ratings":75,"last_updated":76,"tested_up_to":51,"requires_at_least":77,"requires_php":78,"tags":79,"homepage":83,"download_link":84,"security_score":85,"vuln_count":86,"unpatched_count":13,"last_vuln_date":87,"fetched_at":63},"wp-flexible-map","Flexible Map","1.19.0","webaware","https:\u002F\u002Fprofiles.wordpress.org\u002Fwebaware\u002F","\u003Cp>Flexible Map allows you to add Google Maps to your WordPress website with simple shortcodes.\u003C\u002Fp>\n\u003Ch3>Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>three ways to load a map:\n\u003Cul>\n\u003Cli>by center coordinates\u003C\u002Fli>\n\u003Cli>by street address\u003C\u002Fli>\n\u003Cli>by URL to a Google Earth KML file\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>simple shortcode for adding maps to pages\u002Fposts\u003C\u002Fli>\n\u003Cli>PHP function \u003Ccode>flexmap_show_map()\u003C\u002Fcode> for theme and plugin developers\u003C\u002Fli>\n\u003Cli>supports multiple maps on a page\u002Fpost\u003C\u002Fli>\n\u003Cli>supports responsive design — specify width \u002F height in percent\u003C\u002Fli>\n\u003Cli>map marker doesn’t have to be the center of the map\u003C\u002Fli>\n\u003Cli>optional description for info window\u003C\u002Fli>\n\u003Cli>optional directions link for info window\u003C\u002Fli>\n\u003Cli>directions can be dropped into any div element with an ID\u003C\u002Fli>\n\u003Cli>minimal dependencies — just WordPress and the Google Maps API\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fflexible-map.webaware.net.au\u002Fmanual\u002Fgetting-started\u002F\" rel=\"nofollow ugc\">Get started with Flexible Map\u003C\u002Fa>.\u003Cbr \u002F>\n\u003Ca href=\"https:\u002F\u002Fflexible-map.webaware.net.au\u002Fmanual\u002F\" rel=\"nofollow ugc\">Read the manual online\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch3>Sponsorships\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>directions on KML maps generously sponsored by \u003Ca href=\"http:\u002F\u002Fwww.rogerlos.com\u002F\" rel=\"nofollow ugc\">Roger Los\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Thanks for sponsoring new features on WP Flexible Maps!\u003C\u002Fp>\n\u003Ch3>Translations\u003C\u002Fh3>\n\u003Cp>Many thanks to the generous efforts of our translators:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Czech (cs) — \u003Ca href=\"https:\u002F\u002Fprofiles.wordpress.org\u002Fcaslavak\u002F\" rel=\"nofollow ugc\">caslavak\u003C\u002Fa> and the \u003Ca href=\"https:\u002F\u002Ftranslate.wordpress.org\u002Flocale\u002Fcs\u002Fdefault\u002Fwp-plugins\u002Fwp-flexible-map\" rel=\"nofollow ugc\">Czech translation team\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Dutch (nl) — \u003Ca href=\"https:\u002F\u002Flijndiensten.com\u002F\" rel=\"nofollow ugc\">Ivan Beemster\u003C\u002Fa> and the \u003Ca href=\"https:\u002F\u002Ftranslate.wordpress.org\u002Flocale\u002Fnl\u002Fdefault\u002Fwp-plugins\u002Fwp-flexible-map\" rel=\"nofollow ugc\">Dutch translation team\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>English (en_CA) — \u003Ca href=\"https:\u002F\u002Ftranslate.wordpress.org\u002Flocale\u002Fen-ca\u002Fdefault\u002Fwp-plugins\u002Fwp-flexible-map\" rel=\"nofollow ugc\">the English (Canadian) translation team\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>French (fr) — \u003Ca href=\"https:\u002F\u002Fprofiles.wordpress.org\u002Fmister-klucha\u002F\" rel=\"nofollow ugc\">mister klucha\u003C\u002Fa> and the \u003Ca href=\"https:\u002F\u002Ftranslate.wordpress.org\u002Flocale\u002Ffr\u002Fdefault\u002Fwp-plugins\u002Fwp-flexible-map\" rel=\"nofollow ugc\">French translation team\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>German (de) — \u003Ca href=\"https:\u002F\u002Fwww.caribdesign.com\u002F\" rel=\"nofollow ugc\">Carib Design\u003C\u002Fa> and the \u003Ca href=\"https:\u002F\u002Ftranslate.wordpress.org\u002Flocale\u002Fde\u002Fdefault\u002Fwp-plugins\u002Fwp-flexible-map\" rel=\"nofollow ugc\">German translation team\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Greek (el) — \u003Ca href=\"https:\u002F\u002Fprofiles.wordpress.org\u002Fironwiller\u002F\" rel=\"nofollow ugc\">Pantelis Orfanos\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Hungarian (hu) — Krisztián Vörös\u003C\u002Fli>\n\u003Cli>Italian (it_IT) — the \u003Ca href=\"https:\u002F\u002Ftranslate.wordpress.org\u002Flocale\u002Fit\u002Fdefault\u002Fwp-plugins\u002Fwp-flexible-map\" rel=\"nofollow ugc\">Italian translation team\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Korean (ko_KR) — the \u003Ca href=\"https:\u002F\u002Ftranslate.wordpress.org\u002Flocale\u002Fko\u002Fdefault\u002Fwp-plugins\u002Fwp-flexible-map\" rel=\"nofollow ugc\">Korean translation team\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Swedish (sv_SE) — the \u003Ca href=\"https:\u002F\u002Ftranslate.wordpress.org\u002Flocale\u002Fsv\u002Fdefault\u002Fwp-plugins\u002Fwp-flexible-map\" rel=\"nofollow ugc\">Swedish translation team\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Norwegian: Bokmål (nb_NO) — \u003Ca href=\"https:\u002F\u002Fwww.neonnero.com\u002F\" rel=\"nofollow ugc\">neonnero\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Norwegian: Nynorsk (nn_NO) — \u003Ca href=\"https:\u002F\u002Fwww.neonnero.com\u002F\" rel=\"nofollow ugc\">neonnero\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Portuguese (pt_BR) — Alexsandro Santos and Paulo Henrique\u003C\u002Fli>\n\u003Cli>Spanish (es) — \u003Ca href=\"https:\u002F\u002Fprofiles.wordpress.org\u002Fedurramos\u002F\" rel=\"nofollow ugc\">edurramos\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Welsh (cy) — \u003Ca href=\"https:\u002F\u002Fprofiles.wordpress.org\u002Fdtom-ct-wp\u002F\" rel=\"nofollow ugc\">Dylan\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>The initial translations for all other languages were made using Google Translate, so it’s likely that some will be truly awful! If you’d like to help out by translating this plugin, please \u003Ca href=\"https:\u002F\u002Ftranslate.wordpress.org\u002Fprojects\u002Fwp-plugins\u002Fwp-flexible-map\" rel=\"nofollow ugc\">sign up for an account and dig in\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch3>Privacy\u003C\u002Fh3>\n\u003Cp>Flexible Map embeds Google Maps into your web pages. Please review Google’s \u003Ca href=\"https:\u002F\u002Fcloud.google.com\u002Fmaps-platform\u002Fterms\u002Fmaps-controller-terms\u002F\" rel=\"nofollow ugc\">Privacy and Personal Information\u003C\u002Fa> for information about how that affects your website’s Privacy Policy. By using this plugin, you are agreeing to the terms of use for Google Maps.\u003C\u002Fp>\n\u003Cp>The Flexible Map plugin itself does not collect any personally identifying information, and does not set any cookies itself.\u003C\u002Fp>\n","Embed Google Maps shortcodes in pages and posts, either by center coordinates or street address, or by URL to a Google Earth KML file.",7000,357047,96,66,"2025-12-14T04:02:00.000Z","4.6","5.6",[80,81,20,21,82],"google","google-maps","maps","https:\u002F\u002Fflexible-map.webaware.net.au\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwp-flexible-map.1.19.0.zip",99,1,"2025-08-18 19:06:21",{"slug":89,"name":90,"version":91,"author":92,"author_profile":93,"description":94,"short_description":95,"active_installs":96,"downloaded":97,"rating":98,"num_ratings":99,"last_updated":100,"tested_up_to":101,"requires_at_least":102,"requires_php":17,"tags":103,"homepage":107,"download_link":108,"security_score":25,"vuln_count":13,"unpatched_count":13,"last_vuln_date":26,"fetched_at":63},"nomad-world-map","Nomad World Map","1.3.1","worldnomadmap","https:\u002F\u002Fprofiles.wordpress.org\u002Fworldnomadmap\u002F","\u003Cp>For each location that is added to the map you can set the type of content you want to show. Either the excerpt of a blog post, a short custom description or only the travel dates.\u003C\u002Fp>\n\u003Cp>The location content itself is shown in a carousel underneath the map. When you slide through the carousel the map will automatically zoom to the location that is linked to the visible content.\u003C\u002Fp>\n\u003Ch4>Features include:\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Create multiple independent maps\u003C\u002Fli>\n\u003Cli>Add multiple maps to the same page\u003C\u002Fli>\n\u003Cli>A sidebar widget that can show your last location\u003C\u002Fli>\n\u003Cli>Show a list of visited locations with optional arrival and departure dates\u003C\u002Fli>\n\u003Cli>Set custom thumbnails for each location\u003C\u002Fli>\n\u003Cli>Set custom line colors for the past and future travel routes\u003C\u002Fli>\n\u003Cli>Rearrange the order of the travel route by dragging the items up or down in the route list.\u003C\u002Fli>\n\u003Cli>Specify if you want the map to zoom to the first or last location of your travel route.\u003C\u002Fli>\n\u003Cli>Choose from three different content types for each location. Either link to a blog post, write a custom description or show the travel dates.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Ca href=\"http:\u002F\u002Fnomadworldmap.com\u002F\" rel=\"nofollow ugc\">Demo\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>If you want to contribute to the development of this plugin, you can do so through \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnomadworldmap\u002Fnomad-world-map\" rel=\"nofollow ugc\">GitHub\u003C\u002Fa>.\u003C\u002Fp>\n","Create your own custom travel map. Link locations on the map to blog posts and share your travel plans.",700,40771,94,50,"2016-08-30T15:30:00.000Z","4.6.30","3.5",[81,104,105,22,106],"route","travel","trip","http:\u002F\u002Fnomadworldmap.com\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fnomad-world-map.1.3.1.zip",{"slug":110,"name":111,"version":112,"author":113,"author_profile":114,"description":115,"short_description":116,"active_installs":117,"downloaded":118,"rating":13,"num_ratings":13,"last_updated":119,"tested_up_to":120,"requires_at_least":121,"requires_php":122,"tags":123,"homepage":126,"download_link":127,"security_score":25,"vuln_count":13,"unpatched_count":13,"last_vuln_date":26,"fetched_at":63},"integrate-polarsteps","Polarsteps Integration","0.4.0","npersonn","https:\u002F\u002Fprofiles.wordpress.org\u002Fnpersonn\u002F","\u003Cp>\u003Ca href=\"http:\u002F\u002Fpolarsteps.com\u002F\" title=\"Polarsteps.com\" rel=\"nofollow ugc\">Polarsteps.com\u003C\u002Fa> offers a great way of logging your travel experiences. The app does record GPS Locations “Steps”. The user can add images and texts for them. However, for multiple reasons, a lot of travelers are having WordPress travel blogs up and running. If they still want to use Polarsteps and show their last location in their WordPress instance, this plugin offers basic integration between both worlds.\u003C\u002Fp>\n\u003Cp>While being on my round the world trip, I was looking into several options how to communicate back home from my journey. In the end, I thought a combination of a traditional blogging platform used to write posts and an app like Polarsteps offers the most flexibility for me while traveling. If my girlfriend or I want to write an article what happened in the last days (for multiple locations) we can do so. If it’s just about letting everyone know where I was, I use polarsteps travel tracker. Still, for the audience it is important to have all in one place – and have a single point of knowledge.\u003C\u002Fp>\n\u003Cp>This plugin does the first approach to caching the “Steps” on WordPress-side and giving to the users a brief information within a widget where and when the last location within polarsteps was set.\u003C\u002Fp>\n\u003Cp>See the Github-Repo here: \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fnpersonn\u002Fintegrate-polarsteps\" title=\"https:\u002F\u002Fgithub.com\u002Fnpersonn\u002Fintegrate-polarsteps\" rel=\"nofollow ugc\">https:\u002F\u002Fgithub.com\u002Fnpersonn\u002Fintegrate-polarsteps\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch3>Disclaimer\u003C\u002Fh3>\n\u003Cp>As I’m not part of the company behind Polarsteps and just developed the plugin for personal purposes, I reached out to them, in order to check, if they might support the plugin officially. Mainly due to business and UX reasons, they responded they could not officially support my approach. This means the APIs on their side could change from one day to another. In this case, the plugin would stop getting new steps from your Polarsteps profile.\u003C\u002Fp>\n","Wordpress Plugin to integrate Travel Data from Polarsteps within a widget.",200,5747,"2019-01-08T21:44:00.000Z","5.0.25","3.0.1","7.0",[124,105,22,125],"polarsteps","travelmap","http:\u002F\u002Fgithub.com\u002Fnpersonn\u002Fintegrate-polarsteps","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fintegrate-polarsteps.zip",{"slug":129,"name":130,"version":131,"author":132,"author_profile":133,"description":134,"short_description":135,"active_installs":136,"downloaded":137,"rating":136,"num_ratings":138,"last_updated":139,"tested_up_to":140,"requires_at_least":15,"requires_php":17,"tags":141,"homepage":17,"download_link":144,"security_score":25,"vuln_count":13,"unpatched_count":13,"last_vuln_date":26,"fetched_at":63},"wp-flexible-map-options","WP Flexible Map Options","1.0.3","kerli81","https:\u002F\u002Fprofiles.wordpress.org\u002Fkerli81\u002F","\u003Cp>The plugin \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fwp-flexible-map\u002F\" rel=\"ugc\">WP Flexible Map\u003C\u002Fa> provides only shortcode attributes to configure the behaviour of the map. This plugin enhances provides an option page to set the values once for alle maps. It is still possible to override the values by using the attributes in the shortcodes.\u003C\u002Fp>\n","Provides an option page for the plugin WP Flexible Map to define the default values globally.",100,5200,3,"2014-04-26T19:15:00.000Z","3.9.40",[142,80,20,82,143],"flexible-map","options","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwp-flexible-map-options.1.0.3.zip",{"attackSurface":146,"codeSignals":209,"taintFlows":316,"riskAssessment":430,"analyzedAt":441},{"hooks":147,"ajaxHandlers":184,"restRoutes":196,"shortcodes":197,"cronEvents":207,"entryPointCount":208,"unprotectedCount":32},[148,154,158,162,165,168,171,175,179],{"type":149,"name":150,"callback":151,"file":152,"line":153},"action","admin_menu","travelling_blogger_admin_handler","admin_panel.php",19,{"type":149,"name":155,"callback":156,"file":152,"line":157},"delete_post","travelling_blogger_delete_post",24,{"type":149,"name":159,"callback":160,"file":161,"line":157},"rss2_item","travelling_blogger_georss_handler","feed.php",{"type":149,"name":163,"callback":160,"file":161,"line":164},"atom_entry",25,{"type":149,"name":166,"callback":167,"file":161,"line":34},"rss2_ns","travelling_blogger_georss_ns_handler",{"type":149,"name":169,"callback":167,"file":161,"line":170},"atom_ns",31,{"type":149,"name":172,"callback":173,"file":174,"line":153},"add_meta_boxes","travelling_blogger_add_meta_boxes_handler","post_edit.php",{"type":149,"name":176,"callback":177,"file":174,"line":178},"save_post","travelling_blogger_save_postdata",64,{"type":149,"name":180,"callback":181,"file":182,"line":183},"widgets_init","anonymous","widget.php",146,[185,192,195],{"action":186,"nopriv":187,"callback":188,"hasNonce":189,"hasCapCheck":187,"file":190,"line":191},"travelling_blogger_new_location",false,"travelling_blogger_new_location_handler",true,"ajax.php",18,{"action":193,"nopriv":189,"callback":193,"hasNonce":187,"hasCapCheck":187,"file":194,"line":191},"travelling_blogger_kml","kml.php",{"action":193,"nopriv":187,"callback":193,"hasNonce":187,"hasCapCheck":187,"file":194,"line":153},[],[198,203],{"tag":199,"callback":200,"file":201,"line":202},"location_page","travelling_blogger_location_page_short_code_handler","location_page.php",42,{"tag":204,"callback":205,"file":206,"line":153},"location_mini_map","travelling_blogger_location_mini_map_short_code_handler","miniMap.php",[],5,{"dangerousFunctions":210,"sqlUsage":214,"outputEscaping":217,"fileOperations":13,"externalRequests":13,"nonceChecks":313,"capabilityChecks":314,"bundledLibraries":315},[211],{"fn":212,"file":182,"line":183,"context":213},"create_function","add_action('widgets_init', create_function('', 'return register_widget(\"TravellingBloggerWidget\");')",{"prepared":215,"raw":13,"locations":216},16,[],{"escaped":215,"rawEcho":218,"locations":219},54,[220,223,225,227,228,230,231,233,235,237,239,241,243,245,246,248,251,253,255,257,260,262,264,266,268,270,271,273,274,276,278,279,281,283,285,287,288,289,290,291,292,294,295,296,297,299,300,302,304,306,307,308,310,311],{"file":221,"line":164,"context":222},"admin_edit_location.php","raw output",{"file":221,"line":224,"context":222},27,{"file":221,"line":226,"context":222},29,{"file":221,"line":34,"context":222},{"file":221,"line":229,"context":222},39,{"file":190,"line":202,"context":222},{"file":190,"line":232,"context":222},43,{"file":190,"line":234,"context":222},44,{"file":190,"line":236,"context":222},45,{"file":161,"line":238,"context":222},21,{"file":194,"line":240,"context":222},79,{"file":194,"line":242,"context":222},88,{"file":194,"line":244,"context":222},89,{"file":194,"line":85,"context":222},{"file":194,"line":247,"context":222},108,{"file":249,"line":250,"context":222},"list-table-location.php",262,{"file":249,"line":252,"context":222},272,{"file":249,"line":254,"context":222},316,{"file":249,"line":256,"context":222},318,{"file":258,"line":259,"context":222},"location_class.php",295,{"file":201,"line":261,"context":222},59,{"file":201,"line":263,"context":222},62,{"file":201,"line":265,"context":222},65,{"file":201,"line":267,"context":222},68,{"file":201,"line":269,"context":222},73,{"file":201,"line":98,"context":222},{"file":201,"line":272,"context":222},97,{"file":201,"line":136,"context":222},{"file":201,"line":275,"context":222},103,{"file":201,"line":277,"context":222},120,{"file":174,"line":229,"context":222},{"file":182,"line":280,"context":222},49,{"file":182,"line":282,"context":222},51,{"file":182,"line":284,"context":222},57,{"file":182,"line":286,"context":222},60,{"file":182,"line":242,"context":222},{"file":182,"line":244,"context":222},{"file":182,"line":244,"context":222},{"file":182,"line":244,"context":222},{"file":182,"line":48,"context":222},{"file":182,"line":293,"context":222},93,{"file":182,"line":293,"context":222},{"file":182,"line":272,"context":222},{"file":182,"line":275,"context":222},{"file":182,"line":298,"context":222},104,{"file":182,"line":298,"context":222},{"file":182,"line":301,"context":222},107,{"file":182,"line":303,"context":222},114,{"file":182,"line":305,"context":222},115,{"file":182,"line":305,"context":222},{"file":182,"line":277,"context":222},{"file":182,"line":309,"context":222},121,{"file":182,"line":309,"context":222},{"file":182,"line":312,"context":222},129,6,8,[],[317,333,342,352,361,371,379,387,400,409,422],{"entryPoint":318,"graph":319,"unsanitizedCount":32,"severity":332},"travelling_blogger_edit_location (admin_edit_location.php:18)",{"nodes":320,"edges":330},[321,325],{"id":322,"type":323,"label":324,"file":221,"line":153},"n0","source","$_REQUEST (x2)",{"id":326,"type":327,"label":328,"file":221,"line":224,"wp_function":329},"n1","sink","echo() [XSS]","echo",[331],{"from":322,"to":326,"sanitized":187},"medium",{"entryPoint":334,"graph":335,"unsanitizedCount":86,"severity":332},"travelling_blogger_placemark_style (kml.php:104)",{"nodes":336,"edges":340},[337,339],{"id":322,"type":323,"label":338,"file":194,"line":247},"$_GET[?]",{"id":326,"type":327,"label":328,"file":194,"line":247,"wp_function":329},[341],{"from":322,"to":326,"sanitized":187},{"entryPoint":343,"graph":344,"unsanitizedCount":61,"severity":332},"travelling_blogger_location_page_short_code_handler (location_page.php:44)",{"nodes":345,"edges":350},[346,349],{"id":322,"type":323,"label":347,"file":201,"line":348},"$_GET (x9)",47,{"id":326,"type":327,"label":328,"file":201,"line":261,"wp_function":329},[351],{"from":322,"to":326,"sanitized":187},{"entryPoint":353,"graph":354,"unsanitizedCount":32,"severity":360},"\u003Cadmin_edit_location> (admin_edit_location.php:0)",{"nodes":355,"edges":358},[356,357],{"id":322,"type":323,"label":324,"file":221,"line":153},{"id":326,"type":327,"label":328,"file":221,"line":224,"wp_function":329},[359],{"from":322,"to":326,"sanitized":187},"low",{"entryPoint":362,"graph":363,"unsanitizedCount":13,"severity":360},"travelling_blogger_new_location_handler (ajax.php:20)",{"nodes":364,"edges":369},[365,368],{"id":322,"type":323,"label":366,"file":190,"line":367},"$_POST (x2)",22,{"id":326,"type":327,"label":328,"file":190,"line":202,"wp_function":329},[370],{"from":322,"to":326,"sanitized":189},{"entryPoint":372,"graph":373,"unsanitizedCount":13,"severity":360},"\u003Cajax> (ajax.php:0)",{"nodes":374,"edges":377},[375,376],{"id":322,"type":323,"label":366,"file":190,"line":367},{"id":326,"type":327,"label":328,"file":190,"line":202,"wp_function":329},[378],{"from":322,"to":326,"sanitized":189},{"entryPoint":380,"graph":381,"unsanitizedCount":86,"severity":360},"\u003Ckml> (kml.php:0)",{"nodes":382,"edges":385},[383,384],{"id":322,"type":323,"label":338,"file":194,"line":247},{"id":326,"type":327,"label":328,"file":194,"line":247,"wp_function":329},[386],{"from":322,"to":326,"sanitized":187},{"entryPoint":388,"graph":389,"unsanitizedCount":13,"severity":360},"process_bulk_action (list-table-location.php:138)",{"nodes":390,"edges":398},[391,394],{"id":322,"type":323,"label":392,"file":249,"line":393},"$_REQUEST",197,{"id":326,"type":327,"label":395,"file":249,"line":396,"wp_function":397},"update_option() [Settings Manipulation]",199,"update_option",[399],{"from":322,"to":326,"sanitized":189},{"entryPoint":401,"graph":402,"unsanitizedCount":13,"severity":360},"travelling_blogger_display_location_table (list-table-location.php:251)",{"nodes":403,"edges":407},[404,406],{"id":322,"type":323,"label":405,"file":249,"line":252},"$_REQUEST['page']",{"id":326,"type":327,"label":328,"file":249,"line":252,"wp_function":329},[408],{"from":322,"to":326,"sanitized":189},{"entryPoint":410,"graph":411,"unsanitizedCount":13,"severity":360},"\u003Clist-table-location> (list-table-location.php:0)",{"nodes":412,"edges":419},[413,414,415,417],{"id":322,"type":323,"label":392,"file":249,"line":393},{"id":326,"type":327,"label":395,"file":249,"line":396,"wp_function":397},{"id":416,"type":323,"label":405,"file":249,"line":252},"n2",{"id":418,"type":327,"label":328,"file":249,"line":252,"wp_function":329},"n3",[420,421],{"from":322,"to":326,"sanitized":189},{"from":416,"to":418,"sanitized":189},{"entryPoint":423,"graph":424,"unsanitizedCount":61,"severity":360},"\u003Clocation_page> (location_page.php:0)",{"nodes":425,"edges":428},[426,427],{"id":322,"type":323,"label":347,"file":201,"line":348},{"id":326,"type":327,"label":328,"file":201,"line":261,"wp_function":329},[429],{"from":322,"to":326,"sanitized":187},{"summary":431,"deductions":432},"The travelling-blogger plugin v1.0 exhibits a mixed security posture. While it demonstrates good practices by utilizing prepared statements for all SQL queries and includes a reasonable number of nonce and capability checks, significant concerns arise from its attack surface and output sanitization. The presence of two AJAX handlers without authentication checks presents a direct entry point for potential unauthorized actions. Furthermore, a substantial percentage of output (77%) is not properly escaped, posing a risk of Cross-Site Scripting (XSS) vulnerabilities if the plugin handles user-supplied data in its output.\n\nThe taint analysis, while not revealing critical or high-severity vulnerabilities, shows a concerning number of flows with unsanitized paths. This indicates that data might be processed in ways that could be exploited if an attacker can influence the input. The complete absence of known CVEs is a positive sign, suggesting the plugin has not had publicly disclosed vulnerabilities. However, this should not lead to complacency, especially given the identified weaknesses in the code itself.\n\nIn conclusion, the plugin has some robust security foundations in its database interactions. However, the unprotected AJAX endpoints and the widespread lack of output escaping are significant weaknesses that require immediate attention. The vulnerability history is clean, but the static and taint analysis reveal potential vectors that could lead to future issues.",[433,435,437,439],{"reason":434,"points":11},"AJAX handlers without auth checks",{"reason":436,"points":314},"High percentage of unescaped output",{"reason":438,"points":208},"Flows with unsanitized paths",{"reason":440,"points":208},"Use of dangerous function create_function","2026-03-17T01:34:31.838Z",{"wat":443,"direct":460},{"assetPaths":444,"generatorPatterns":451,"scriptPaths":452,"versionParams":453},[445,446,447,448,449,450],"\u002Fwp-content\u002Fplugins\u002Ftravelling-blogger\u002Fcss\u002Fbootstrap.min.css","\u002Fwp-content\u002Fplugins\u002Ftravelling-blogger\u002Fcss\u002Fbootstrap-datetimepicker.min.css","\u002Fwp-content\u002Fplugins\u002Ftravelling-blogger\u002Fjs\u002Fbootstrap.min.js","\u002Fwp-content\u002Fplugins\u002Ftravelling-blogger\u002Fjs\u002Fmoment.min.js","\u002Fwp-content\u002Fplugins\u002Ftravelling-blogger\u002Fjs\u002Fbootstrap-datetimepicker.min.js","\u002Fwp-content\u002Fplugins\u002Ftravelling-blogger\u002Fjs\u002Ftravelling-blogger.js",[],[447,448,449,450],[454,455,456,457,458,459],"travelling-blogger\u002Fcss\u002Fbootstrap.min.css?ver=","travelling-blogger\u002Fcss\u002Fbootstrap-datetimepicker.min.css?ver=","travelling-blogger\u002Fjs\u002Fbootstrap.min.js?ver=","travelling-blogger\u002Fjs\u002Fmoment.min.js?ver=","travelling-blogger\u002Fjs\u002Fbootstrap-datetimepicker.min.js?ver=","travelling-blogger\u002Fjs\u002Ftravelling-blogger.js?ver=",{"cssClasses":461,"htmlComments":464,"htmlAttributes":474,"restEndpoints":479,"jsGlobals":482,"shortcodeOutput":486},[462,463],"travelling-blogger-map","tb-location-field",[465,466,467,468,469,470,471,472,473],"\u003C!-- The main table container -->","\u003C!-- Display the table -->","\u003C!-- Form fields for adding\u002Fediting locations -->","\u003C!-- Map container -->","\u003C!-- Add new location form -->","\u003C!-- Location list table -->","\u003C!-- Edit location form -->","\u003C!-- Map display for location selection -->","\u003C!-- Date and time picker -->",[475,476,477,478],"data-latitude","data-longitude","data-location-id","data-map-container",[480,481],"\u002Fwp-json\u002Ftravelling-blogger\u002Fv1\u002Flocations","\u002Fwp-json\u002Ftravelling-blogger\u002Fv1\u002Flocations\u002F([0-9]+)",[483,484,485],"travellingBloggerMap","tb_location_data","travellingBloggerMarker",[487,488],"[travelling-blogger-map]","[travelling-blogger-locations]",{"error":189,"url":490,"statusCode":491,"statusMessage":492,"message":492},"http:\u002F\u002Flocalhost\u002Fapi\u002Fplugins\u002Ftravelling-blogger\u002Fbundle",404,"no bundle for this plugin yet",{"slug":4,"current_version":6,"total_versions":13,"versions":494},[]]