[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fEWd0Q-eShtg4_GfHYj3psFHxoEIk6GrRPC5e1vu4GVU":3},{"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":14,"last_updated":15,"tested_up_to":16,"requires_at_least":17,"requires_php":18,"tags":19,"homepage":25,"download_link":26,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30,"vulnerabilities":31,"developer":32,"crawl_stats":29,"alternatives":39,"analysis":140,"fingerprints":641},"wp-trip-summary","WP Trip Summary","0.3.2","Alexandru BOIA","https:\u002F\u002Fprofiles.wordpress.org\u002Falexandruboia\u002F","\u003Cp>🌟 \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Falexboia\u002FWP-Trip-Summary\" rel=\"nofollow ugc\">GitHub\u003C\u002Fa>\u003Cbr \u002F>\n❤️ \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fwp-trip-summary\u002F\" rel=\"ugc\">WordPress\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch3>Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>attach technical information to a post (ex. how long was your trip, how much did you totally climb, where from and where to, how hard do you think it has been, what kind of roads or trails did you encounter etc.);\u003C\u002Fli>\n\u003Cli>attach GPS data to a post (GPX, GeoJSON and KML files are currently accepted as data sources) and display that track on a map;\u003C\u002Fli>\n\u003Cli>maintain rider’s log entries, while optionally specifying some of them as public;\u003C\u002Fli>\n\u003Cli>allows management of the look-up data used to populate the fields presented as single or multi-selection options list (ex. \u003Ccode>Difficulty Level\u003C\u002Fcode>, \u003Ccode>Open During Seasons\u003C\u002Fcode> etc.);\u003C\u002Fli>\n\u003Cli>allows customization of the map layer:\n\u003Cul>\n\u003Cli>map tile source (comes by default configured with \u003Ca href=\"https:\u002F\u002Fwww.openstreetmap.org\u002F\" rel=\"nofollow ugc\">OpenStreetMap\u003C\u002Fa>); \u003C\u002Fli>\n\u003Cli>enabling\u002Fdisabling of available map controls; \u003C\u002Fli>\n\u003Cli>customizing the visual representation of the track).\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>allows customization of the measurement unit system used to represent various values (ex. \u003Ccode>Total distance\u003C\u002Fcode>, \u003Ccode>Total climb\u003C\u002Fcode> etc.);\u003C\u002Fli>\n\u003Cli>multi-language.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>More details\u003C\u002Fh3>\n\u003Cp>This plug-in provides three basic features:\u003Cbr \u002F>\n– allow some structured information to be filled in, according to a selected trip type;\u003Cbr \u002F>\n– allow some GPS track to be uploaded and then rendered on a map;\u003Cbr \u002F>\n– maintain rider’s log entries, while optionally specifying some of them as public.\u003C\u002Fp>\n\u003Cp>Structured information is supported for the following types of trips:\u003Cbr \u002F>\n– Bike trips;\u003Cbr \u002F>\n– Hiking trips;\u003Cbr \u002F>\n– Train rides.\u003C\u002Fp>\n\u003Cp>For bike trips the following fields are available:\u003Cbr \u002F>\n– Total distance;\u003Cbr \u002F>\n– Total climb;\u003Cbr \u002F>\n– Difficulty level;\u003Cbr \u002F>\n– Access information (how to get to the start point and return from the end point);\u003Cbr \u002F>\n– Open during seasons;\u003Cbr \u002F>\n– Path surface type (eg: dirt, asphalt, grass etc.);\u003Cbr \u002F>\n– Recommended bike type (eg: MTB, road bike etc.).\u003C\u002Fp>\n\u003Cp>For hiking trips the following fields are available:\u003Cbr \u002F>\n– Total distance;\u003Cbr \u002F>\n– Total climb;\u003Cbr \u002F>\n– Difficulty level;\u003Cbr \u002F>\n– Access information;\u003Cbr \u002F>\n– Open during seasons;\u003Cbr \u002F>\n– Path surface type;\u003Cbr \u002F>\n– Route markers.\u003C\u002Fp>\n\u003Cp>For train rides the following fields are available:\u003Cbr \u002F>\n– Total distance;\u003Cbr \u002F>\n– How many trains were exchanged;\u003Cbr \u002F>\n– Line gauge (mm);\u003Cbr \u002F>\n– Railroad operators used;\u003Cbr \u002F>\n– Line status (closed, operational etc.);\u003Cbr \u002F>\n– Whether the line is electrified or not;\u003Cbr \u002F>\n– Line type.\u003C\u002Fp>\n\u003Ch3>Requirements\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>PHP version 8.0.0 or greater (as of version 0.3.2);\u003C\u002Fli>\n\u003Cli>MySQL version 5.7 or greater (with spatial support);\u003C\u002Fli>\n\u003Cli>WordPress 6.0.0 or greater;\u003C\u002Fli>\n\u003Cli>libxml extension;\u003C\u002Fli>\n\u003Cli>SimpleXml extension;\u003C\u002Fli>\n\u003Cli>mysqli extension;\u003C\u002Fli>\n\u003Cli>mbstring – not strictly required, but recommended;\u003C\u002Fli>\n\u003Cli>zlib – not strictly required, but recommended.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Multi language\u003C\u002Fh3>\n\u003Cp>Available in English, Romanian, French and (since 0.3.2) German.\u003C\u002Fp>\n\u003Ch3>Helping out\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>by contributing: head over tot he project’s GitHub page: \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Falexboia\u002FWP-Trip-Summary\" rel=\"nofollow ugc\">https:\u002F\u002Fgithub.com\u002Falexboia\u002FWP-Trip-Summary\u003C\u002Fa>;\u003C\u002Fli>\n\u003Cli>by donating: \u003Ca href=\"https:\u002F\u002Fko-fi.com\u002Falexandruboia\" rel=\"nofollow ugc\">https:\u002F\u002Fko-fi.com\u002Falexandruboia\u003C\u002Fa>;\u003C\u002Fli>\n\u003Cli>support my paid work: \u003Ca href=\"https:\u002F\u002Falexboia.gumroad.com\u002F\" rel=\"nofollow ugc\">https:\u002F\u002Falexboia.gumroad.com\u002F\u003C\u002Fa>.\u003C\u002Fli>\n\u003C\u002Ful>\n","A WordPress trip summary plugin to help travel bloggers manage and display structured information about their train rides and biking or hiking trips.",20,4003,90,4,"2024-04-30T10:18:00.000Z","6.5.8","6.0.0","8.0.0",[20,21,22,23,24],"gpx","map","summary","travel","trip","https:\u002F\u002Fgithub.com\u002Falexboia\u002FWP-Trip-Summary","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwp-trip-summary.0.3.2.zip",92,0,null,"2026-03-15T15:16:48.613Z",[],{"slug":33,"display_name":7,"profile_url":8,"plugin_count":34,"total_installs":35,"avg_security_score":36,"avg_patch_time_days":35,"trust_score":37,"computed_at":38},"alexandruboia",2,30,89,86,"2026-04-04T14:13:53.842Z",[40,63,81,100,117],{"slug":41,"name":42,"version":43,"author":44,"author_profile":45,"description":46,"short_description":47,"active_installs":48,"downloaded":49,"rating":50,"num_ratings":51,"last_updated":52,"tested_up_to":53,"requires_at_least":54,"requires_php":55,"tags":56,"homepage":60,"download_link":61,"security_score":62,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"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,40661,94,50,"2016-08-30T15:30:00.000Z","4.6.30","3.5","",[57,58,23,59,24],"google-maps","route","travel-blog","http:\u002F\u002Fnomadworldmap.com\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fnomad-world-map.1.3.1.zip",85,{"slug":64,"name":65,"version":66,"author":67,"author_profile":68,"description":69,"short_description":70,"active_installs":13,"downloaded":71,"rating":72,"num_ratings":73,"last_updated":74,"tested_up_to":75,"requires_at_least":76,"requires_php":55,"tags":77,"homepage":79,"download_link":80,"security_score":62,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"travelmap","Travelmap","1.5","mediascreen","https:\u002F\u002Fprofiles.wordpress.org\u002Fmediascreen\u002F","\u003Cp>Travelmap helps you show your travels on a Google map in any post or page. Add places you have visited or plan to visit to show them connected on a world map.\u003C\u002Fp>\n\u003Cp>Add arrival dates to automatically show your current position and where you have been so far. Map markers and city names can be linked to a custom url – for example a blog post, wikipedia entry or Flickr album. Geocoding is done automatically based on city and country – but if you need to you can override with your own coordinates.\u003C\u002Fp>\n\u003Cp>The maps and lists can be customized using shortcode attributes. There is a full list of available options under the installation tab.\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"http:\u002F\u002Ftravelingswede.com\u002Fmy-travel-map\u002F\" title=\"A demo of Travelmap using my travels\" rel=\"nofollow ugc\">See Travelmap in use\u003C\u002Fa>\u003Cbr \u002F>\n\u003Ca href=\"http:\u002F\u002Ftravelingswede.com\u002Ftravelmap\u002F\" rel=\"nofollow ugc\">The plugin homepage\u003C\u002Fa>\u003Cbr \u002F>\n\u003Ca href=\"http:\u002F\u002Ftravelmap.uservoice.com\" rel=\"nofollow ugc\">Travelmap forum at Uservoice\u003C\u002Fa>\u003C\u002Fp>\n","Generates a map of your travels in any post or page based on a list of places.",12540,66,3,"2011-11-24T21:01:00.000Z","3.2.1","2.7",[21,78,23,59,24],"maps","http:\u002F\u002Ftravelingswede.com\u002Ftravelmap\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ftravelmap.1.5.zip",{"slug":82,"name":83,"version":84,"author":85,"author_profile":86,"description":87,"short_description":88,"active_installs":89,"downloaded":90,"rating":91,"num_ratings":14,"last_updated":92,"tested_up_to":93,"requires_at_least":94,"requires_php":95,"tags":96,"homepage":98,"download_link":99,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"traveledmap-trip-itinerary-embedded-map","TraveledMap Trip itinerary: Embedded map","1.2.1","traveledmap","https:\u002F\u002Fprofiles.wordpress.org\u002Ftraveledmap\u002F","\u003Cp>This plugin will help you to produce more interactive blog posts thanks to a map, \u003Cstrong>moving along your trip’s steps\u003C\u002Fstrong> while user is reading the post.\u003Cbr \u002F>\nThe map can show your trip \u003Cstrong>pictures\u003C\u002Fstrong>, the steps name and is fully customizable to your needs:\u003Cbr \u002F>\nYou can either include a map thanks to a \u003Cstrong>widget\u003C\u002Fstrong>, that will be expandable on the screen depending on the options you specify, or\u003Cbr \u002F>\nthanks to a map that can be “sticky”, i.e it will stay at the top of the screen while user reads the article.\u003Cbr \u002F>\nBy creating your trip on \u003Ca href=\"https:\u002F\u002Fwww.traveledmap.com\u002Fbuilder\" title=\"Build your first trip with TraveledMap\" rel=\"nofollow ugc\">TraveledMap\u003C\u002Fa>, you will be\u003Cbr \u002F>\nable to create a brand new type of blog post in a few minutes !\u003Cbr \u002F>\nA short demonstration video is worth a thousand words:\u003C\u002Fp>\n\u003Ch3>How does it work ?\u003C\u002Fh3>\n\u003Cp>As explained above, this plugin aims to \u003Cstrong>improve user experience\u003C\u002Fstrong> by placing a map of your trip on your blog posts.\u003Cbr \u002F>\nOnce the plugin installed, you will have a new section on the right of the post editor, as explained in the\u003Cbr \u002F>\n\u003Ca href=\"https:\u002F\u002Fyoutu.be\u002F8ksArmSB-ug\" rel=\"nofollow ugc\">Configuration video\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>This section contains four fields:\u003Cbr \u002F>\n – \u003Cstrong>User id\u003C\u002Fstrong>: This is your TraveledMap user id\u003Cbr \u002F>\n – \u003Cstrong>Trip id\u003C\u002Fstrong>: This is the id of your trip, created on \u003Ca href=\"https:\u002F\u002Fwww.traveledmap.com\" title=\"TraveledMap interactive trips\" rel=\"nofollow ugc\">TraveledMap\u003C\u002Fa>\u003Cbr \u002F>\n – \u003Cstrong>Disable widget\u003C\u002Fstrong>: It allows to disable the widget on a specific page\u003Cbr \u002F>\n – \u003Cstrong>Show markers customization\u003C\u002Fstrong>: It allows to see the marker’s icon, color and size instead of steps numbers\u003C\u002Fp>\n\u003Cp>To get this data, go to the map edition page of TraveledMap, and click the link button, under the name of the trip you want to embed\u003Cbr \u002F>\nin your post. It will lead you to the “Embed a trip” page with the needed information.\u003Cbr \u002F>\nOnce you filled the two field, you need to validate in order to save and to check if the data is valid.\u003Cbr \u002F>\nThen don’t forget to save the draft.\u003C\u002Fp>\n\u003Cp>Once this step done, you will be able to have a map using either a widget or a standard map.\u003C\u002Fp>\n\u003Ch3>Use the widget\u003C\u002Fh3>\n\u003Cp>To use the widget, go to your admin widget management section and add the “TraveledMap Trip” widget.\u003Cbr \u002F>\nThe widget will include a map showing all the steps of your trip at first, then it will show the different cities or steps\u003Cbr \u002F>\nalong user’s reading.\u003Cbr \u002F>\nYou can customise the widget using different options:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Show on phones\u003C\u002Fstrong> will decide if the map will appear when a user is visiting the website with a mobile (width \u003C= 576px).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Show on tablets\u003C\u002Fstrong> will decide if the map will appear when a user is visiting the website with a tablet (576px > width \u003C= 768px).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Show on larger screens\u003C\u002Fstrong> will decide if the map will appear when a user is visiting the website with a larger screen than phone or tablet (> 768px).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Map height\u003C\u002Fstrong>: The default map’s height when it’s not expanded.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Widget is sticky\u003C\u002Fstrong>: If checked, the widget will be sticky to the top of the screen even if he’s not expanded. This way, it will follow the user scroll even in reduced size.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>When the map is not extended, show steps\u003C\u002Fstrong>: You can decide if the name of your trip’s steps will be shown by default or not. If not checked, steps will be shown only when the mouse\u003Cbr \u002F>\nis over the step marker, or the step currently scrolled.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Can be expanded\u003C\u002Fstrong>: Choose whether the widget will keep its default size, or if user will be able to expand its size by clicking a button (like a youtube video)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>When the map is extended, show steps\u003C\u002Fstrong>: This is the same option that you can configure for the extended map.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>When the map is extended, show pictures\u003C\u002Fstrong>: You can decide that pictures will never be visible. If this option is not checked, the pictures will be visible only if users decide\u003Cbr \u002F>\nto expand the pictures panel, at the bottom of the map.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Extend to top, right, bottom or left\u003C\u002Fstrong>: First, note that those options will work only if you checked the previous one. Choosing extend to top, will resize the map to fit\u003Cbr \u002F>\nthe top of the screen when the user click the “extend” button. Moreover, as soon as the button is clicked, the map will be sticky in order to be close to the user\u003Cbr \u002F>\nwhen he reads the article.\u003Cbr \u002F>\nWith 4 options, you can decide to expand the map whereever you want. For example, if the widget is in a sidebar on the right, you can check extend top, right and bottom.\u003Cbr \u002F>\nThis way, the map will be “half full sized” on the right and you don’t have to change anything to your layout !\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Margin top, right, bottom and left\u003C\u002Fstrong>: Margins are used to let some space between the map and the borders of the screen when the map is extended. Most of the time\u003Cbr \u002F>\nexpand a map to the borders of the screen will be ugly, that’s why you can use margin and make the map fit the spacing of your theme.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Note\u003C\u002Fstrong> that the widget won’t show if your blog post doesn’t contain a trip id information (filled in the post editor).\u003C\u002Fp>\n\u003Ch3>use the Standard map\u003C\u002Fh3>\n\u003Cp>If you don’t want to use widget, that is the recommanded way to use this plugin for a better user experience, you can use the standard map.\u003Cbr \u002F>\nYou can place this map everywhere in your article thanks to a \u003Cstrong>Block\u003C\u002Fstrong> or a \u003Cstrong>Shortcode\u003C\u002Fstrong>. Its behavior is the same as the widget, it will move along the\u003Cbr \u002F>\nlocation you visited while users is reading your article.\u003Cbr \u002F>\nThere are multiple options to customise it.\u003C\u002Fp>\n\u003Cp>In the “Map content” section:\u003Cbr \u002F>\n – \u003Cstrong>Show steps name\u003C\u002Fstrong>: You can decide if the name of your trip’s steps will be shown by default or not. If not checked, steps will be shown only when the mouse\u003Cbr \u002F>\n is over the step marker, or the step currently scrolled.\u003Cbr \u002F>\n – \u003Cstrong>Show pictures\u003C\u002Fstrong>: You can decide that pictures will never be visible. If this option is not checked, the pictures will be visible only if users decide\u003Cbr \u002F>\n to expand the pictures panel, at the bottom of the map.\u003Cbr \u002F>\n – \u003Cstrong>Show overview pictures\u003C\u002Fstrong>: Overview pictures are the pictures you choose as the best pictures of your trip. You can decide to show them or not with this option.\u003C\u002Fp>\n\u003Cp>In the “Map settings” section:\u003Cbr \u002F>\n – \u003Cstrong>Map height\u003C\u002Fstrong> can be defined in pixels (px) or percentage (%) of the screen’s height. It will define the height of the map when it’s not sticky.\u003Cbr \u002F>\n – \u003Cstrong>Map is sticky\u003C\u002Fstrong> will decide if the map sticks to the top of the screen while user scroll to read the blog post.\u003Cbr \u002F>\n – \u003Cstrong>Show on phones\u003C\u002Fstrong> will decide if the map will appear when a user is visiting the website with a mobile (width \u003C= 576px).\u003Cbr \u002F>\n – \u003Cstrong>Show on tablets\u003C\u002Fstrong> will decide if the map will appear when a user is visiting the website with a tablet (576px > width \u003C= 768px).\u003Cbr \u002F>\n – \u003Cstrong>Show on larger screens\u003C\u002Fstrong> will decide if the map will appear when a user is visiting the website with a larger screen than phone or tablet (> 768px).\u003Cbr \u002F>\n – \u003Cstrong>Height of the map in its standard height\u003C\u002Fstrong>: This is the height the map will take. Either you can specify a fixed height with pixels (e.g 300px)\u003Cbr \u002F>\n or you can specify a percentage relative to the screen height (e.g 40%).\u003Cbr \u002F>\n – \u003Cstrong>Height of the map in its extended height\u003C\u002Fstrong>: Users will be able to choose whether the map is hidden, in standard height or extended height. This option\u003Cbr \u002F>\n corresponds to the size of the expanded height, in pixels or percentage.\u003Cbr \u002F>\n – \u003Cstrong>Top margin\u003C\u002Fstrong>: As the widget margins, you may want to see space between the map and the top of the screen. This is the way to configure a space.\u003Cbr \u002F>\n The value is in pixels, but you have to omit the “px”. For example use “18”, NOT “18px”\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Shortcode example\u003C\u002Fstrong>\u003Cbr \u002F>\n[embedded_trip show_popup=”0″ show_pictures=”1″ show_pictures_at_start=”0″ map_height=”60%” is_sticky=”1″ show_on_phones=”1″ show_on_tablets=”1″ show_on_large_screens=”1″ standard_map_height=”35%” extended_map_height=”70%” margin_top=”10″]\u003C\u002Fp>\n\u003Ch3>Define when a step should show\u003C\u002Fh3>\n\u003Cp>This step explains how the magic happens…\u003Cbr \u002F>\nA you can see in the video above, the map moves from step to step while scrolling the video.\u003Cbr \u002F>\nIn order to achieve these moves, you have to specify where your steps stands along your article. Don’t worry it’s easy to do.\u003Cbr \u002F>\nJust include a \u003Cstrong>Embedded Trip step Block\u003C\u002Fstrong> (search for Embedded trip step) or a \u003Cstrong>Shortcode\u003C\u002Fstrong> and choose the step in the list.\u003Cbr \u002F>\nIf you don’t see any step in the list, please check that your trip has steps and that you pressed the “Validate” button in the editor’s right column.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Shortcode example\u003C\u002Fstrong>\u003Cbr \u002F>\n[embedded_trip_step location=”vancouver”]\u003Cbr \u002F>\nIf you’re not using block but shortcode, you will have to use locations specified on the “Embed a trip” page, where you found\u003Cbr \u002F>\nyour user id and trip id.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Note\u003C\u002Fstrong>: If your trip’s steps are not well ordered, you can edit the order on the trip edition page.\u003Cbr \u002F>\nYou can access this page from the \u003Ca href=\"https:\u002F\u002Fwww.traveledmap.com\u002Fshare\" title=\"Embed your Trips on a blog post\" rel=\"nofollow ugc\">Share page\u003C\u002Fa> too.\u003C\u002Fp>\n\u003Ch3>Pricing\u003C\u002Fh3>\n\u003Cp>The WordPress plugin is free but to embed the map on your posts, it stays free under 1000 page views by month but\u003Cbr \u002F>\nhas a pricing from $9.99 to $49.99 by month depending on the number of visits on your site.\u003Cbr \u002F>\nYou can learn more at \u003Ca href=\"https:\u002F\u002Fwww.traveledmap.com\u002Fpricing\" title=\"TraveledMap pricing\" rel=\"nofollow ugc\">Embed page\u003C\u002Fa>\u003C\u002Fp>\n","Create interactive blog posts thanks to a map moving along your trip's steps while user reads. The map can be customized to fit your theme.",80,3996,100,"2024-12-18T09:42:00.000Z","6.6.5","3.0.1","5.6",[21,97,23,85,24],"pictures","https:\u002F\u002Ffr.wordpress.org\u002Fplugins\u002Ftraveledmap-trip-itinerary-embedded-map\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Ftraveledmap-trip-itinerary-embedded-map.1.2.1.zip",{"slug":101,"name":102,"version":103,"author":104,"author_profile":105,"description":106,"short_description":107,"active_installs":28,"downloaded":108,"rating":28,"num_ratings":28,"last_updated":109,"tested_up_to":110,"requires_at_least":111,"requires_php":112,"tags":113,"homepage":115,"download_link":116,"security_score":91,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"mapthread","Mapthread","1.6.1","David","https:\u002F\u002Fprofiles.wordpress.org\u002Frandomwire\u002F","\u003Cp>\u003Cstrong>Mapthread\u003C\u002Fstrong> brings your adventures to life with interactive, auto-following maps.\u003C\u002Fp>\n\u003Cp>Perfect for travel bloggers, hiking enthusiasts, and anyone who wants to tell location-based stories that engage readers.\u003C\u002Fp>\n\u003Cp>\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\u002FLBp_favwZVs?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>\u003C\u002Fp>\n\u003Ch4>Storytelling\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Map automatically follows your narrative as readers scroll\u003C\u002Fli>\n\u003Cli>Pauses when readers explore the map themselves, resumes when they scroll on\u003C\u002Fli>\n\u003Cli>Click any marker to jump to that part of the story text\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Maps\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Upload a GPX file from any hiking, cycling, or fitness app\u003C\u002Fli>\n\u003Cli>Elevation profile with distance and gain\u002Floss stats\u003C\u002Fli>\n\u003Cli>Street, Satellite, Topographic map styles plus more from other providers (with API keys)\u003C\u002Fli>\n\u003Cli>Fullscreen mode, layer switcher, and optional GPX download for readers\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Markers\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Place waypoints anywhere in your story with optional emoji pins\u003C\u002Fli>\n\u003Cli>Find locations by address or paste coordinates\u003C\u002Fli>\n\u003Cli>Import named waypoints directly from your GPX file as Map Marker blocks in one click\u003C\u002Fli>\n\u003Cli>Without a GPX file, markers are connected together using a straight line\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Layout\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Two-column desktop view: story on the left, sticky map on the right\u003C\u002Fli>\n\u003Cli>Mobile: map sticky at top (hidden by default)\u003C\u002Fli>\n\u003Cli>Readers can dismiss and restore the map at any time\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Perfect For\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Hiking and backpacking blogs\u003C\u002Fli>\n\u003Cli>Travel storytelling\u003C\u002Fli>\n\u003Cli>Cycling route documentation\u003C\u002Fli>\n\u003Cli>Race and event recaps\u003C\u002Fli>\n\u003Cli>Historical narratives with geographic context\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>How It Works\u003C\u002Fh4>\n\u003Col>\n\u003Cli>Create a post and add the \u003Cstrong>Map GPX\u003C\u002Fstrong> block\u003C\u002Fli>\n\u003Cli>Upload your GPX file from the media library\u003C\u002Fli>\n\u003Cli>If your GPX contains named waypoints, click \u003Cstrong>Import as Map Markers\u003C\u002Fstrong> to add them automatically — or insert \u003Cstrong>Map Marker\u003C\u002Fstrong> blocks manually at key points in your story\u003C\u002Fli>\n\u003Cli>Add coordinates and titles to any markers, then arrange them in your story\u003C\u002Fli>\n\u003Cli>Publish – the map automatically follows as readers scroll!\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch4>Examples\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Frandomwire.com\u002Fmaling-ancient-road\u002F\" rel=\"nofollow ugc\">Maling Ancient Road\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Frandomwire.com\u002Fjiyugaoka-green-roads\u002F\" rel=\"nofollow ugc\">Jiyugaoka’s Green Roads\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Frandomwire.com\u002Fhakuba\u002F\" rel=\"nofollow ugc\">Hakuba: Into The Abyss\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Frandomwire.com\u002Fshimanami-kaido\u002F\" rel=\"nofollow ugc\">Cycling the Shimanami Kaido\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Compatibility\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Browsers: Chrome 105+, Safari 15.4+\u003C\u002Fli>\n\u003Cli>Themes: Tested on Twenty Twenty-Four and Twenty Twenty-Five. Should work on most block themes. Classic themes are not supported.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Configuring Additional Map Providers (Optional)\u003C\u002Fh3>\n\u003Cp>Mapthread includes three free map styles out of the box (Street, Satellite, Topographic). You can also connect additional tile providers with an API key for more map styles: \u003Cstrong>Mapbox\u003C\u002Fstrong>, \u003Cstrong>Thunderforest\u003C\u002Fstrong>, \u003Cstrong>JawgMaps\u003C\u002Fstrong>, \u003Cstrong>Stadia Maps\u003C\u002Fstrong>.\u003C\u002Fp>\n\u003Col>\n\u003Cli>Go to Settings > Mapthread\u003C\u002Fli>\n\u003Cli>Enter your API key for any supported provider (Mapbox, Thunderforest, JawgMaps, Stadia Maps)\u003C\u002Fli>\n\u003Cli>Select which map styles to enable for each provider\u003C\u002Fli>\n\u003Cli>Save Changes — enabled styles will appear in the map layer switcher on the frontend\u003C\u002Fli>\n\u003C\u002Fol>\n","Transform your travel stories into interactive map experiences. Upload GPX files, place markers, watch the map follow as readers scroll.",184,"2026-02-25T09:23:00.000Z","6.9.4","6.0","7.4",[20,114,21,58,23],"hiking","https:\u002F\u002Fgithub.com\u002Frandomwire\u002FMapthread","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fmapthread.1.6.1.zip",{"slug":118,"name":119,"version":120,"author":121,"author_profile":122,"description":123,"short_description":124,"active_installs":125,"downloaded":126,"rating":13,"num_ratings":127,"last_updated":128,"tested_up_to":110,"requires_at_least":129,"requires_php":130,"tags":131,"homepage":136,"download_link":137,"security_score":138,"vuln_count":73,"unpatched_count":28,"last_vuln_date":139,"fetched_at":30},"interactive-geo-maps","MapGeo – Interactive Geo Maps","1.6.28","MapGeo","https:\u002F\u002Fprofiles.wordpress.org\u002Finteractivegeomaps\u002F","\u003Cp>Create interactive maps with regions and coloured markers. You can display the world map, continent maps and single country maps.\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Finteractivegeomaps.com\u002Ffeatures\" rel=\"nofollow ugc\">Demo\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Fdemo.tastewp.com\u002Finteractive-geo-maps\" rel=\"nofollow ugc\">Admin Demo\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Finteractivegeomaps.com\u002Fmaps\u002F\" rel=\"nofollow ugc\">Maps\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Finteractivegeomaps.com\u002Fdocumentation\u002F\" rel=\"nofollow ugc\">Documentation\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Finteractivegeomaps.com\u002Fpricing\u002F\" rel=\"nofollow ugc\">Pro\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch4>More than 250 vector maps available\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>World map (with and without Antarctica)\u003C\u002Fli>\n\u003Cli>World map divided by continents (different variations)\u003C\u002Fli>\n\u003Cli>Maps of continents and regions (Africa, Asia, Caribbean, Central America, Europe, Latin America, Middle East, North America, Oceania, South America )\u003C\u002Fli>\n\u003Cli>US States divided by counties (California, Texas, Florida, New York and all the others)\u003C\u002Fli>\n\u003Cli>Mexico county maps\u003C\u002Fli>\n\u003Cli>Canada county maps\u003C\u002Fli>\n\u003Cli>Most countries in the world, including United States of America (USA), Germany, France, United Kingdom (UK), Netherlands, Spain, Australia, Italy, Poland, South Africa, Brazil, India, Japan and many others.\u003C\u002Fli>\n\u003Cli>Some countries with different map variations like France, divided by regions or departments, Portugal divided by districts or municipalities, among others.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Create your first interactive map in minutes! Use it to display your visited countries map, travel map, office locations, projects map, representatives map, statistics map, data visualization map or any other thing!\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Finteractivegeomaps.com\u002Fmaps\u002F\" rel=\"nofollow ugc\">Browse Full List of Maps\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch4>Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Create as many maps as you want\u003C\u002Fli>\n\u003Cli>Responsive and cross-device\u003C\u002Fli>\n\u003Cli>Color countries\u003C\u002Fli>\n\u003Cli>Add round coloured markers\u003C\u002Fli>\n\u003Cli>Set hover color change\u003C\u002Fli>\n\u003Cli>Set click actions, like open a new window\u003C\u002Fli>\n\u003Cli>Choose from different map projections (Mercator, Miller, NaturalEarth1, among others)\u003C\u002Fli>\n\u003Cli>Select which regions to display in a map\u003C\u002Fli>\n\u003Cli>Exclude specific regions from a map\u003C\u002Fli>\n\u003Cli>Display HTML tooltips on hover\u003C\u002Fli>\n\u003Cli>Zoom controls and Pan\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Pro only Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Colour regions and markers individually\u003C\u002Fli>\n\u003Cli>Change initial zoom and center\u003C\u002Fli>\n\u003Cli>Cluster markers\u003C\u002Fli>\n\u003Cli>Add Legend\u003C\u002Fli>\n\u003Cli>Custom images as markers\u003C\u002Fli>\n\u003Cli>Vector icons as markers\u003C\u002Fli>\n\u003Cli>Text Labels\u003C\u002Fli>\n\u003Cli>Display content on click outside the map\u003C\u002Fli>\n\u003Cli>Display content in a lightbox\u003C\u002Fli>\n\u003Cli>Group regions\u003C\u002Fli>\n\u003Cli>Create heatmaps (choropleth maps)\u003C\u002Fli>\n\u003Cli>Add lines connecting markers\u003C\u002Fli>\n\u003Cli>Overlay different maps (have US states map on world map for example)\u003C\u002Fli>\n\u003Cli>Populate map automatically from existing categories or Tags\u003C\u002Fli>\n\u003Cli>Advanced zoom options\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Finteractivegeomaps.com\u002Ffeatures\u002F\" rel=\"nofollow ugc\">Features Examples\u003C\u002Fa> | \u003Ca href=\"https:\u002F\u002Finteractivegeomaps.com\u002Fpricing\u002F\" rel=\"nofollow ugc\">Go Pro\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>The plugin generates interactive, responsive, touch-enabled SVG maps which are embedded directly into your HTML5 pages and compatible with all modern browsers and devices.\u003C\u002Fp>\n\u003Ch4>Privacy Information & External Services\u003C\u002Fh4>\n\u003Cp>This plugin will build the maps using the \u003Ca href=\"https:\u002F\u002Fwww.amcharts.com\u002Fjavascript-charts\u002F\" rel=\"nofollow ugc\">amcharts visualization library\u003C\u002Fa> which provides hundreds of different maps. The plugin loads some files from their CDN to build the map and display it on your page. You won’t need to have a amcharts account for the maps to work. More information about their \u003Ca href=\"https:\u002F\u002Fwww.amcharts.com\u002Fprivacy-policy\u002F\" rel=\"nofollow ugc\">amcharts Privacy Policy\u003C\u002Fa>.\u003Cbr \u002F>\nWhen you first install the plugin, you can choose to \u003Ca href=\"https:\u002F\u002Finteractivegeomaps.com\u002Fdocs\u002Fopt-in-to-non-sensitive-diagnostic-tracking\u002F\" rel=\"nofollow ugc\">opt-in to share non-sensitive data with Freemius\u003C\u002Fa>, a framework we use to collect data about your WordPress installation that will help us improve the plugin. This is optional and the plugin will still work if you don’t opt-in. It will not collect any data from your visitors.\u003C\u002Fp>\n\u003Ch3>Credits\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwww.amcharts.com\u002F\" rel=\"nofollow ugc\">amcharts\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"http:\u002F\u002Fgithub.com\u002Fsummerstyle\u002FjsonTreeViewer\" rel=\"nofollow ugc\">jsonTree\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fkraaden.github.io\u002Fautocomplete\u002F\" rel=\"nofollow ugc\">autocomplete\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fundraw.co\u002F\" rel=\"nofollow ugc\">unDraw\u003C\u002Fa> – Banner Illustrations\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"http:\u002F\u002Fcodestarframework.com\u002F\" rel=\"nofollow ugc\">Codestar Framework\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fjohnbillion\u002Fextended-cpts\" rel=\"nofollow ugc\">Extended CPTs\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n","Create interactive vector maps of the world, continents, any country in the world and specific regions, including individual US state county maps.",40000,692370,63,"2026-03-11T22:08:00.000Z","5.0","7.0",[132,21,133,134,135],"interactive-map","travel-map","us-map","world-map","https:\u002F\u002Finteractivegeomaps.com\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Finteractive-geo-maps.1.6.28.zip",97,"2025-04-09 00:00:00",{"attackSurface":141,"codeSignals":147,"taintFlows":567,"riskAssessment":626,"analyzedAt":640},{"hooks":142,"ajaxHandlers":143,"restRoutes":144,"shortcodes":145,"cronEvents":146,"entryPointCount":28,"unprotectedCount":28},[],[],[],[],[],{"dangerousFunctions":148,"sqlUsage":149,"outputEscaping":151,"fileOperations":34,"externalRequests":28,"nonceChecks":28,"capabilityChecks":28,"bundledLibraries":563},[],{"prepared":28,"raw":28,"locations":150},[],{"escaped":152,"rawEcho":153,"locations":154},336,243,[155,159,162,165,167,170,172,174,176,177,179,182,184,186,188,189,191,193,195,196,198,199,201,203,206,207,208,209,211,213,215,217,219,221,223,225,227,230,232,234,235,236,238,239,240,242,244,246,248,250,251,254,255,257,260,261,262,264,265,267,268,269,271,272,274,276,278,280,282,284,286,288,290,292,294,296,298,300,302,304,306,308,310,311,313,315,317,319,321,323,325,327,329,331,332,334,336,338,340,342,344,346,348,350,352,354,356,358,360,362,364,365,368,369,370,372,373,374,375,377,378,379,381,382,383,384,386,387,388,389,390,391,392,394,395,396,397,399,400,401,403,405,407,408,410,411,412,414,415,416,417,419,420,422,424,426,428,430,431,432,434,436,437,439,441,443,444,446,448,449,451,453,454,455,456,457,459,460,462,463,464,465,466,468,470,471,473,474,476,478,480,482,484,486,487,488,489,490,491,492,493,494,496,497,498,499,500,502,503,504,505,506,507,508,509,510,512,513,514,516,518,520,522,524,526,528,530,532,534,536,538,540,542,544,546,548,549,551,553,555,557,559,561],{"file":156,"line":157,"context":158},"abp01-plugin-leaflet-plugins-wrapper.php",220,"raw output",{"file":160,"line":161,"context":158},"views\\helpers\\controls.frontend.php",206,{"file":163,"line":164,"context":158},"views\\helpers\\controls.php",61,{"file":163,"line":166,"context":158},77,{"file":168,"line":169,"context":158},"views\\maintenance\\wpts-detect-missing-track-files-result.php",38,{"file":168,"line":171,"context":158},39,{"file":168,"line":173,"context":158},40,{"file":168,"line":175,"context":158},49,{"file":168,"line":51,"context":158},{"file":168,"line":178,"context":158},57,{"file":180,"line":181,"context":158},"views\\wpts-about.php",35,{"file":180,"line":183,"context":158},47,{"file":180,"line":185,"context":158},51,{"file":180,"line":187,"context":158},55,{"file":180,"line":164,"context":158},{"file":180,"line":190,"context":158},65,{"file":180,"line":192,"context":158},69,{"file":180,"line":194,"context":158},73,{"file":180,"line":166,"context":158},{"file":180,"line":197,"context":158},78,{"file":180,"line":62,"context":158},{"file":180,"line":200,"context":158},88,{"file":180,"line":202,"context":158},95,{"file":204,"line":205,"context":158},"views\\wpts-admin-system-logs.php",45,{"file":204,"line":175,"context":158},{"file":204,"line":185,"context":158},{"file":204,"line":187,"context":158},{"file":204,"line":210,"context":158},60,{"file":204,"line":212,"context":158},75,{"file":204,"line":214,"context":158},79,{"file":204,"line":216,"context":158},84,{"file":204,"line":218,"context":158},102,{"file":204,"line":220,"context":158},106,{"file":204,"line":222,"context":158},107,{"file":204,"line":224,"context":158},108,{"file":204,"line":226,"context":158},115,{"file":228,"line":229,"context":158},"views\\wpts-audit-log.php",41,{"file":228,"line":231,"context":158},44,{"file":228,"line":233,"context":158},52,{"file":228,"line":210,"context":158},{"file":228,"line":194,"context":158},{"file":228,"line":237,"context":158},76,{"file":228,"line":216,"context":158},{"file":228,"line":27,"context":158},{"file":241,"line":181,"context":158},"views\\wpts-button.php",{"file":243,"line":183,"context":158},"views\\wpts-editor-launcher-metabox.php",{"file":243,"line":245,"context":158},59,{"file":243,"line":247,"context":158},68,{"file":243,"line":249,"context":158},72,{"file":243,"line":212,"context":158},{"file":252,"line":253,"context":158},"views\\wpts-editor-quick-actions-tooltip.php",36,{"file":252,"line":229,"context":158},{"file":252,"line":256,"context":158},43,{"file":258,"line":259,"context":158},"views\\wpts-editor-quick-actions.php",37,{"file":258,"line":256,"context":158},{"file":258,"line":175,"context":158},{"file":258,"line":263,"context":158},53,{"file":258,"line":187,"context":158},{"file":266,"line":185,"context":158},"views\\wpts-editor.php",{"file":266,"line":263,"context":158},{"file":266,"line":178,"context":158},{"file":266,"line":270,"context":158},64,{"file":266,"line":166,"context":158},{"file":266,"line":273,"context":158},82,{"file":266,"line":275,"context":158},98,{"file":266,"line":277,"context":158},99,{"file":266,"line":279,"context":158},105,{"file":266,"line":281,"context":158},110,{"file":266,"line":283,"context":158},113,{"file":266,"line":285,"context":158},116,{"file":266,"line":287,"context":158},119,{"file":266,"line":289,"context":158},128,{"file":266,"line":291,"context":158},132,{"file":266,"line":293,"context":158},136,{"file":266,"line":295,"context":158},139,{"file":266,"line":297,"context":158},144,{"file":266,"line":299,"context":158},149,{"file":266,"line":301,"context":158},153,{"file":266,"line":303,"context":158},160,{"file":266,"line":305,"context":158},165,{"file":266,"line":307,"context":158},172,{"file":266,"line":309,"context":158},177,{"file":266,"line":108,"context":158},{"file":266,"line":312,"context":158},194,{"file":266,"line":314,"context":158},198,{"file":266,"line":316,"context":158},202,{"file":266,"line":318,"context":158},205,{"file":266,"line":320,"context":158},210,{"file":266,"line":322,"context":158},215,{"file":266,"line":324,"context":158},219,{"file":266,"line":326,"context":158},226,{"file":266,"line":328,"context":158},231,{"file":266,"line":330,"context":158},238,{"file":266,"line":153,"context":158},{"file":266,"line":333,"context":158},252,{"file":266,"line":335,"context":158},256,{"file":266,"line":337,"context":158},260,{"file":266,"line":339,"context":158},264,{"file":266,"line":341,"context":158},271,{"file":266,"line":343,"context":158},276,{"file":266,"line":345,"context":158},283,{"file":266,"line":347,"context":158},288,{"file":266,"line":349,"context":158},295,{"file":266,"line":351,"context":158},300,{"file":266,"line":353,"context":158},307,{"file":266,"line":355,"context":158},317,{"file":266,"line":357,"context":158},320,{"file":266,"line":359,"context":158},337,{"file":266,"line":361,"context":158},338,{"file":363,"line":256,"context":158},"views\\wpts-frontend-jsvars.php",{"file":363,"line":231,"context":158},{"file":366,"line":367,"context":158},"views\\wpts-frontend-route-log.php",42,{"file":366,"line":183,"context":158},{"file":366,"line":127,"context":158},{"file":371,"line":205,"context":158},"views\\wpts-frontend.php",{"file":371,"line":185,"context":158},{"file":371,"line":185,"context":158},{"file":371,"line":233,"context":158},{"file":371,"line":376,"context":158},56,{"file":371,"line":376,"context":158},{"file":371,"line":178,"context":158},{"file":371,"line":380,"context":158},62,{"file":371,"line":380,"context":158},{"file":371,"line":222,"context":158},{"file":371,"line":224,"context":158},{"file":385,"line":173,"context":158},"views\\wpts-help.php",{"file":385,"line":205,"context":158},{"file":385,"line":175,"context":158},{"file":385,"line":185,"context":158},{"file":385,"line":178,"context":158},{"file":385,"line":164,"context":158},{"file":385,"line":72,"context":158},{"file":393,"line":173,"context":158},"views\\wpts-jsonld-frontend-data.php",{"file":393,"line":173,"context":158},{"file":393,"line":173,"context":158},{"file":393,"line":173,"context":158},{"file":398,"line":181,"context":158},"views\\wpts-listing-inline-scripts.php",{"file":398,"line":253,"context":158},{"file":398,"line":259,"context":158},{"file":398,"line":402,"context":158},48,{"file":404,"line":256,"context":158},"views\\wpts-log-editor-launcher-status-item.php",{"file":406,"line":253,"context":158},"views\\wpts-log-editor.php",{"file":406,"line":210,"context":158},{"file":406,"line":409,"context":158},71,{"file":406,"line":249,"context":158},{"file":406,"line":194,"context":158},{"file":406,"line":413,"context":158},74,{"file":406,"line":212,"context":158},{"file":406,"line":237,"context":158},{"file":406,"line":13,"context":158},{"file":406,"line":418,"context":158},101,{"file":406,"line":218,"context":158},{"file":406,"line":421,"context":158},118,{"file":406,"line":423,"context":158},124,{"file":406,"line":425,"context":158},129,{"file":406,"line":427,"context":158},135,{"file":406,"line":429,"context":158},145,{"file":406,"line":299,"context":158},{"file":406,"line":301,"context":158},{"file":406,"line":433,"context":158},157,{"file":406,"line":435,"context":158},161,{"file":406,"line":305,"context":158},{"file":406,"line":438,"context":158},169,{"file":406,"line":440,"context":158},175,{"file":406,"line":442,"context":158},176,{"file":406,"line":324,"context":158},{"file":406,"line":445,"context":158},221,{"file":406,"line":447,"context":158},225,{"file":406,"line":326,"context":158},{"file":450,"line":402,"context":158},"views\\wpts-lookup-data-management.php",{"file":450,"line":452,"context":158},54,{"file":450,"line":178,"context":158},{"file":450,"line":190,"context":158},{"file":450,"line":247,"context":158},{"file":450,"line":89,"context":158},{"file":450,"line":458,"context":158},81,{"file":450,"line":37,"context":158},{"file":450,"line":461,"context":158},87,{"file":450,"line":200,"context":158},{"file":450,"line":50,"context":158},{"file":450,"line":202,"context":158},{"file":450,"line":279,"context":158},{"file":450,"line":467,"context":158},109,{"file":450,"line":469,"context":158},114,{"file":450,"line":226,"context":158},{"file":450,"line":472,"context":158},125,{"file":450,"line":289,"context":158},{"file":450,"line":475,"context":158},133,{"file":450,"line":477,"context":158},134,{"file":450,"line":479,"context":158},151,{"file":450,"line":481,"context":158},152,{"file":450,"line":483,"context":158},158,{"file":485,"line":181,"context":158},"views\\wpts-maintenance.php",{"file":485,"line":253,"context":158},{"file":485,"line":259,"context":158},{"file":485,"line":367,"context":158},{"file":485,"line":183,"context":158},{"file":485,"line":233,"context":158},{"file":485,"line":270,"context":158},{"file":485,"line":413,"context":158},{"file":485,"line":273,"context":158},{"file":495,"line":181,"context":158},"views\\wpts-settings.php",{"file":495,"line":253,"context":158},{"file":495,"line":259,"context":158},{"file":495,"line":169,"context":158},{"file":495,"line":256,"context":158},{"file":495,"line":501,"context":158},46,{"file":495,"line":402,"context":158},{"file":495,"line":452,"context":158},{"file":495,"line":237,"context":158},{"file":495,"line":214,"context":158},{"file":495,"line":458,"context":158},{"file":495,"line":461,"context":158},{"file":495,"line":91,"context":158},{"file":495,"line":281,"context":158},{"file":495,"line":511,"context":158},120,{"file":495,"line":293,"context":158},{"file":495,"line":481,"context":158},{"file":495,"line":515,"context":158},164,{"file":495,"line":517,"context":158},183,{"file":495,"line":519,"context":158},187,{"file":495,"line":521,"context":158},189,{"file":495,"line":523,"context":158},195,{"file":495,"line":525,"context":158},207,{"file":495,"line":527,"context":158},212,{"file":495,"line":529,"context":158},224,{"file":495,"line":531,"context":158},236,{"file":495,"line":533,"context":158},248,{"file":495,"line":535,"context":158},253,{"file":495,"line":537,"context":158},265,{"file":495,"line":539,"context":158},277,{"file":495,"line":541,"context":158},289,{"file":495,"line":543,"context":158},301,{"file":495,"line":545,"context":158},313,{"file":495,"line":547,"context":158},325,{"file":495,"line":359,"context":158},{"file":495,"line":550,"context":158},349,{"file":495,"line":552,"context":158},367,{"file":495,"line":554,"context":158},372,{"file":495,"line":556,"context":158},378,{"file":495,"line":558,"context":158},396,{"file":495,"line":560,"context":158},403,{"file":495,"line":562,"context":158},406,[564],{"name":565,"version":29,"knownCves":566},"Select2",[],[568,586],{"entryPoint":569,"graph":570,"unsanitizedCount":34,"severity":585},"abp01_wrapper_serve_script (abp01-plugin-leaflet-plugins-wrapper.php:181)",{"nodes":571,"edges":582},[572,576],{"id":573,"type":574,"label":575,"file":156,"line":108},"n0","source","$_SERVER (x2)",{"id":577,"type":578,"label":579,"file":156,"line":580,"wp_function":581},"n1","sink","header() [Header Injection]",199,"header",[583],{"from":573,"to":577,"sanitized":584},false,"medium",{"entryPoint":587,"graph":588,"unsanitizedCount":625,"severity":585},"\u003Cabp01-plugin-leaflet-plugins-wrapper> (abp01-plugin-leaflet-plugins-wrapper.php:0)",{"nodes":589,"edges":619},[590,592,593,597,599,603,607,610,614],{"id":573,"type":574,"label":591,"file":156,"line":108},"$_SERVER (x3)",{"id":577,"type":578,"label":579,"file":156,"line":580,"wp_function":581},{"id":594,"type":574,"label":595,"file":156,"line":596},"n2","$_GET",122,{"id":598,"type":578,"label":579,"file":156,"line":322,"wp_function":581},"n3",{"id":600,"type":574,"label":601,"file":156,"line":602},"n4","$_SERVER",104,{"id":604,"type":578,"label":605,"file":156,"line":157,"wp_function":606},"n5","echo() [XSS]","echo",{"id":608,"type":574,"label":601,"file":156,"line":609},"n6",204,{"id":611,"type":612,"label":613,"file":156,"line":609},"n7","transform","→ abp01_wrapper_process_script()",{"id":615,"type":578,"label":616,"file":156,"line":617,"wp_function":618},"n8","file_get_contents() [SSRF\u002FLFI]",167,"file_get_contents",[620,621,622,623,624],{"from":573,"to":577,"sanitized":584},{"from":594,"to":598,"sanitized":584},{"from":600,"to":604,"sanitized":584},{"from":608,"to":611,"sanitized":584},{"from":611,"to":615,"sanitized":584},6,{"summary":627,"deductions":628},"The wp-trip-summary plugin v0.3.2 exhibits a mixed security posture. On the positive side, the plugin has no known historical vulnerabilities (CVEs), suggesting a generally stable and secure development history. The static analysis shows no dangerous functions, no external HTTP requests, and all SQL queries are properly prepared, which are excellent security practices. However, there are notable concerns. The plugin has a very low percentage of properly escaped output (58%), indicating a significant risk of Cross-Site Scripting (XSS) vulnerabilities. Additionally, the taint analysis revealed two flows with unsanitized paths, which could potentially lead to path traversal or other file-related vulnerabilities, even though no critical or high-severity issues were flagged in the taint analysis itself. The absence of nonce checks and capability checks on its entry points, coupled with a lack of a clear attack surface in the static analysis, makes it difficult to definitively assess its exposure, but the unescaped output remains the most pressing immediate concern.",[629,632,635,638],{"reason":630,"points":631},"Low percentage of properly escaped output (58%)",15,{"reason":633,"points":634},"Taint analysis shows 2 flows with unsanitized paths",8,{"reason":636,"points":637},"No nonce checks implemented",5,{"reason":639,"points":637},"No capability checks implemented","2026-03-16T23:04:07.356Z",{"wat":642,"direct":663},{"assetPaths":643,"generatorPatterns":652,"scriptPaths":653,"versionParams":654},[644,645,646,647,648,649,650,651],"\u002Fwp-content\u002Fplugins\u002Fwp-trip-summary\u002Fcss\u002Fwpts-editor-launcher-metabox.css","\u002Fwp-content\u002Fplugins\u002Fwp-trip-summary\u002Fcss\u002Fwpts-frontend-map.css","\u002Fwp-content\u002Fplugins\u002Fwp-trip-summary\u002Fcss\u002Fwpts-frontend-route-log.css","\u002Fwp-content\u002Fplugins\u002Fwp-trip-summary\u002Fcss\u002Fwpts-frontend-trip-summary.css","\u002Fwp-content\u002Fplugins\u002Fwp-trip-summary\u002Fjs\u002Fwpts-editor-launcher-metabox.js","\u002Fwp-content\u002Fplugins\u002Fwp-trip-summary\u002Fjs\u002Fwpts-frontend-map.js","\u002Fwp-content\u002Fplugins\u002Fwp-trip-summary\u002Fjs\u002Fwpts-frontend-route-log.js","\u002Fwp-content\u002Fplugins\u002Fwp-trip-summary\u002Fjs\u002Fwpts-frontend-trip-summary.js",[],[648,649,650,651],[655,656,657,658,659,660,661,662],"wp-trip-summary\u002Fcss\u002Fwpts-editor-launcher-metabox.css?ver=","wp-trip-summary\u002Fcss\u002Fwpts-frontend-map.css?ver=","wp-trip-summary\u002Fcss\u002Fwpts-frontend-route-log.css?ver=","wp-trip-summary\u002Fcss\u002Fwpts-frontend-trip-summary.css?ver=","wp-trip-summary\u002Fjs\u002Fwpts-editor-launcher-metabox.js?ver=","wp-trip-summary\u002Fjs\u002Fwpts-frontend-map.js?ver=","wp-trip-summary\u002Fjs\u002Fwpts-frontend-route-log.js?ver=","wp-trip-summary\u002Fjs\u002Fwpts-frontend-trip-summary.js?ver=",{"cssClasses":664,"htmlComments":675,"htmlAttributes":678,"restEndpoints":683,"jsGlobals":684,"shortcodeOutput":688},[665,666,667,668,669,670,671,672,673,674],"abp01-editor-launcher-status-item","launcher-icon","abp01-editor-launcher-status-trip-summary-info","abp01-editor-launcher-status-trip-summary-track","status-text","launch-editor-trigger","quick-actions","abp01-quick-actions-trigger","abp01-quick-actions-tooltip","launch-edit",[676,677],"Copyright (c) 2014-2024 Alexandru Boia and Contributors","Redistribution and use in source and binary forms, with or without modification,",[679,680,681,682],"data-status-text","data-action","data-select-tab","data-controller-selector",[],[685,686,687],"abp01_trip_summary_map_config","abp01_trip_summary_route_log_config","abp01_editor_launcher_metabox_config",[]]