[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fvKtX7UxgE5LuzInhoE8DtbZVQxwzxqvXluegNR3cDb4":3,"$fxg1q1DUHnTzQ5-eI3EPNK2eGeoVeX6rUv87gx-iHytA":324,"$fQEVE5qNhWvEkwLSTuk5p6Qd_75dqVnYhABaAioTfWcc":328},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":11,"num_ratings":11,"last_updated":13,"tested_up_to":14,"requires_at_least":15,"requires_php":16,"tags":17,"homepage":21,"download_link":22,"security_score":23,"vuln_count":11,"unpatched_count":11,"last_vuln_date":24,"fetched_at":25,"discovery_status":26,"vulnerabilities":27,"developer":28,"crawl_stats":24,"alternatives":34,"analysis":97,"fingerprints":294},"geo2wp","Phototools: geo2wp","1.4","jondor","https:\u002F\u002Fprofiles.wordpress.org\u002Fjondor\u002F","\u003Cp>This plugin is a replacement for my old “GPS MAP Widget” plugin with the following options:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>In the “media” list view there’s a new column which shows the availability of GEO data\u003C\u002Fli>\n\u003Cli>When GEOdata isn’t found yet, it checks the imagefile for the EXIF geodata and stores it in the metadata\u003C\u002Fli>\n\u003Cli>The old metadata used by GPS MAP Widget is recognized and translated in the current system. \u003C\u002Fli>\n\u003Cli>In the POST\u002FPAGES overview a new column is presented with the featured image. Geodata is presented with an overlay icon.\u003C\u002Fli>\n\u003Cli>The media\u002Fpost\u002Fpage edit screen shows the location map in a metabox when a featured images with geodata is available.\u003C\u002Fli>\n\u003Cli>A widget “geo2wp map” is available. \u003C\u002Fli>\n\u003Cli>Two shortcodes are available: EXIF_locationmap and EXIF_location. See below for the usage, which is exactly the same (oh well, minus the api key)as under GPS MAP Widget.\u003C\u002Fli>\n\u003Cli>GeoRSS can be added to the feed (default: yes)\u003C\u002Fli>\n\u003Cli>The widget is only show when there’s something to show. This also goes for the shortcode, when there’s no data to show, nothing is shown.\u003C\u002Fli>\n\u003Cli>geo2wp handles the geodata as described in https:\u002F\u002Fcodex.wordpress.org\u002FGeodata and as such should be compatible with other systems using these metadataa fields.\u003C\u002Fli>\n\u003Cli>Every item in the medialist now has an option to reload the exif geo info. \u003C\u002Fli>\n\u003Cli>In the media screen you can also bulk reload exif geo info\u003C\u002Fli>\n\u003Cli>On the media edit screen the message in the widget, when no map can be shown, is clickable an tries to reload the exif geo info.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>EXIF_locationmap:\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>width: width of the map image in px. default 300px\u003C\u002Fli>\n\u003Cli>height: height of the mapimage in px. default 200px;\u003C\u002Fli>\n\u003Cli>zoom: googlemaps zoomlevel. Default 11\u003C\u002Fli>\n\u003Cli>Errors: Show error messages when no exif is available or when there’s no featured image. Default is false for the shortcode\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Example:\u003Cbr \u002F>\n    [EXIF_locationmap width=750 height=300 zoom=11 errors=false]\u003C\u002Fp>\n\u003Ch4>EXIF_location:\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>part:  ‘latitude’, ‘longitude’ or ‘both’\u003C\u002Fli>\n\u003Cli>form:  ‘dec’ or ‘dms’ (decimal or Degree minute seconds. Decimal is default);\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>example:\u003Cbr \u002F>\n    [EXIF_location part=both]\u003Cbr \u002F>\n    will return  52.22935055,6.8737411\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[EXIF_location part=both form=dms]\nwill return  52°21'13\"N , 6°26'7\"N\n\u003C\u002Fcode>\u003C\u002Fpre>\n","Geotools for WP, replaces and extends \"GPS MAP Widget\". Part of the phototools plugins",0,1275,"2018-12-19T15:34:00.000Z","5.0.25","3.0.1","5.6",[18,19,20],"geo","phototools","tools","https:\u002F\u002Fgerhardhoogterp.nl\u002Fplugins\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fgeo2wp.1.4.zip",85,null,"2026-04-16T10:56:18.058Z","no_bundle",[],{"slug":7,"display_name":7,"profile_url":8,"plugin_count":29,"total_installs":30,"avg_security_score":23,"avg_patch_time_days":31,"trust_score":32,"computed_at":33},8,40,30,84,"2026-07-14T20:33:05.606Z",[35,49,61,71,86],{"slug":36,"name":37,"version":38,"author":7,"author_profile":8,"description":39,"short_description":40,"active_installs":41,"downloaded":42,"rating":11,"num_ratings":11,"last_updated":43,"tested_up_to":44,"requires_at_least":15,"requires_php":16,"tags":45,"homepage":21,"download_link":48,"security_score":23,"vuln_count":11,"unpatched_count":11,"last_vuln_date":24,"fetched_at":25},"geo2wikipedia","Phototools: geo2wikipedia","1.3","\u003Cp>Add wikipedia extracts to your page as a widgid, above or under your content or using shortcode’s wherever you like.\u003C\u002Fp>\n\u003Cp>To connect a wikipedia title and extact to your post, there’s a widget on the post edit page with 3 tabs.\u003Cbr \u002F>\nThe first, default, tab just tells you to start typing in the inputfield above. A datalist with finds will show\u003Cbr \u002F>\nup when you stop typing for a few seconds.\u003C\u002Fp>\n\u003Cp>When used with geo2wp, on of my other plugins, or with any other plugin which adds coordinates to a post, a second\u003Cbr \u002F>\nGeo tab will be available. Select it and a list of found objects, sorted by distance from the location, will be shown.\u003C\u002Fp>\n\u003Cp>The third tab will give you a preview of the found wikipedia info.\u003C\u002Fp>\n\u003Cp>Make your pick and update.\u003C\u002Fp>\n\u003Cp>Once a wikipedia page is linked to the post, there are also a number of ways to show the info on your site:\u003C\u002Fp>\n\u003Cp>First you can add a widget which is only shown when there’s something to show.\u003Cbr \u002F>\nThen you can turn on the switch in the settings for adding the information as a blockquote above or\u003Cbr \u002F>\nbelow the content.\u003C\u002Fp>\n\u003Cp>And lastly there’s a shortcode [wiki] with four options:\u003C\u002Fp>\n\u003Cp>[wiki] or [wiki part=extract]   to show the extract\u003Cbr \u002F>\n[wiki part=title]               to show only the title\u003Cbr \u002F>\n[wiki part=url]                 to show the ‘raw” url which refers to the wikipedia page\u003Cbr \u002F>\n[wiki part=link]                to show a full \u003Ca href=\"\" rel=\"nofollow ugc\">\u003C\u002Fa> with the relevant info filled.\u003C\u002Fp>\n\u003Cp>geo2wp has a switch to enable the use of shortcodes in widgets so hack away.\u003C\u002Fp>\n\u003Cp>Warning:\u003Cbr \u002F>\n    At this moment all the actions and urls are based on the language selected in the settingsscreen. This language\u003Cbr \u002F>\n    is by default the language of the site at the time of activating the plugin. If you change the language on a later\u003Cbr \u002F>\n    time, it is very possible that the urls to wikipedia will no longer work as the titles will be different.\u003Cbr \u002F>\n    For now I’m pondering two solutions: To store the used language in the wikiData so the language is always know, OR,\u003Cbr \u002F>\n    to make the wikiData language depending. When you select an other language, everything will be gone, but when your\u003Cbr \u002F>\n    go back it will be there again. Opinions are welcome..\u003C\u002Fp>\n\u003Cp>As for the other settings in the settingsscreen:\u003C\u002Fp>\n\u003Cp>Max. results:       The maximal number of results to give back when searching\u003Cbr \u002F>\nMax. search radius: The radius in meters in where to search geographical\u003C\u002Fp>\n\u003Cp>Add the wikipedia info to the content: none | top | below\u003Cbr \u002F>\n    Where to show the wikiData blockquote in the content. Default is none.\u003C\u002Fp>\n\u003Cp>The jQuery-ui theme used. Default is “flick” but any other theme, available under\u003Cbr \u002F>\n‘https:\u002F\u002Fajax.googleapis.com\u002Fajax\u002Flibs\u002Fjqueryui\u002F1.8.13\u002Fthemes\u002F’ is usable.\u003C\u002Fp>\n","Add wikipedia extracts to your page as a widgid, above or under your content or using shortcode's wherever you like.",10,1514,"2019-05-08T07:49:00.000Z","5.2.24",[46,19,47],"exif","wikipedia","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fgeo2wikipedia.zip",{"slug":50,"name":51,"version":6,"author":7,"author_profile":8,"description":52,"short_description":53,"active_installs":41,"downloaded":54,"rating":11,"num_ratings":11,"last_updated":55,"tested_up_to":44,"requires_at_least":15,"requires_php":16,"tags":56,"homepage":59,"download_link":60,"security_score":23,"vuln_count":11,"unpatched_count":11,"last_vuln_date":24,"fetched_at":25},"wadmwidget","Phototools: wadmwidget","\u003Cp>A widget to connect photos to the Werk aan de Muur \u002F Oh My Prints sales page.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Checks the userid\u002Fpassword for validity\u003C\u002Fli>\n\u003Cli>Checks if a workcode is yours\u003C\u002Fli>\n\u003Cli>Filter on the postlist\u003C\u002Fli>\n\u003Cli>Workcode field in the quickedit and on the editscreen\u003C\u002Fli>\n\u003Cli>Widget to place on the photo page\u003C\u002Fli>\n\u003Cli>select the sites language (Dutch, German or French)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Result: https:\u002F\u002Fgerhardhoogterp.nl\u002F2017\u002F12\u002F28\u002Fold-farm-in-the-woods\u002F\u003C\u002Fp>\n\u003Cp>New: shortcode [wadm]. Use as:\u003C\u002Fp>\n\u003Cp>none:               [wadm]                  Same as [wadm data=formatted_link]\u003Cbr \u002F>\nid:             [wadm data=id]\u003Cbr \u002F>\nownerid:            [wadm data=ownerid]\u003Cbr \u002F>\nfile:               [wadm data=file]\u003Cbr \u002F>\nlink:               [wadm data=link]\u003Cbr \u002F>\nimage:              [wadm data=image]\u003Cbr \u002F>\nimagehttps:         [wadm data=imagehttps]\u003Cbr \u002F>\nprice:              [wadm data=price]\u003Cbr \u002F>\nsize:               [wadm data=size]\u003Cbr \u002F>\nsize-width:         [wadm data=size-width]          Only the width in pixels\u003Cbr \u002F>\nsize-height:                [wadm data=size-height]         Only the height in pixels\u003Cbr \u002F>\naspect:             [wadm data=aspect]\u003Cbr \u002F>\ntitle:              [wadm data=title]\u003Cbr \u002F>\nformatted:          [wadm data=formatted]           Formated string (title, size and price)\u003Cbr \u002F>\nformatted_link:         [wadm data=formatted_link]      Formated with link, target=_blank”\u003C\u002Fp>\n\u003Cp>Languages supported for the are only dutch and german, Dutch if you redirect to WerkAanDeMuuer, German when you redirect to OhMyPrints.\u003Cbr \u002F>\nRegretfully the usefullness of this is rather limited due to the limited amount of data.\u003C\u002Fp>\n\u003Cp>The link used by the shortcode has an extra wadm_link class for all your specialized formatting needs.\u003C\u002Fp>\n\u003Ch3>to do\u003C\u002Fh3>\n","A widget to connect photos to the Werk aan de Muur \u002F Oh My Prints sales page. Part of the phototools plugins",1419,"2019-05-08T07:52:00.000Z",[57,19,58],"ohmyprints","werkaandemuur","https:\u002F\u002Fwww.funsite.eu\u002Fplugins\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwadmwidget.zip",{"slug":62,"name":63,"version":38,"author":7,"author_profile":8,"description":64,"short_description":65,"active_installs":11,"downloaded":66,"rating":11,"num_ratings":11,"last_updated":67,"tested_up_to":14,"requires_at_least":15,"requires_php":16,"tags":68,"homepage":21,"download_link":70,"security_score":23,"vuln_count":11,"unpatched_count":11,"last_vuln_date":24,"fetched_at":25},"exifwidget","EXIFwidget","\u003Cp>Shows EXIF info as widget or in the text using a shortcode. The widget shows the basic info on a photo:\u003Cbr \u002F>\nCamera, Aperture, Exposure, Iso, Focal length given and as 35mm equivalent and a timestamp when the photo was taken.\u003C\u002Fp>\n\u003Cp>The shortcode is simple:\u003C\u002Fp>\n\u003Cp>[EXIF data=]\u003C\u002Fp>\n\u003Cp>with the following values (without the quotes):\u003C\u002Fp>\n\u003Cul>\n\u003Cli>“camera”  brand and make of the camera\u003C\u002Fli>\n\u003Cli>“aperture” as f\u002Fxx \u003C\u002Fli>\n\u003Cli>“exposure”  a number in seconds\u003C\u002Fli>\n\u003Cli>“iso”\u003C\u002Fli>\n\u003Cli>“focallength” as found as given\u003C\u002Fli>\n\u003Cli>“Focallength35mm” The focal length as full frame (35mm) equivalent\u003C\u002Fli>\n\u003Cli>“timestamp”       The time and date when the photo was taken\u003C\u002Fli>\n\u003Cli>“time”            The time the photo was taken\u003C\u002Fli>\n\u003Cli>“date”            The date the photo was taken\u003C\u002Fli>\n\u003Cli>“any”             A table with all the information as seen in the widget.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Just using [EXIF] is the same as [EXIF data=any].\u003C\u002Fp>\n\u003Cp>Example:\u003Cbr \u002F>\n    This image was made using a [EXIF data=”camera”] using a [EXIF data=”focallength”]mm lens.\u003C\u002Fp>\n","Shows EXIF info as widget or in the text using a shortcode. Part of the phototools plugins",1389,"2018-12-19T14:58:00.000Z",[46,19,69],"widget","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fexifwidget.1.3.zip",{"slug":72,"name":73,"version":74,"author":7,"author_profile":8,"description":75,"short_description":76,"active_installs":11,"downloaded":77,"rating":11,"num_ratings":11,"last_updated":78,"tested_up_to":44,"requires_at_least":15,"requires_php":16,"tags":79,"homepage":21,"download_link":84,"security_score":23,"vuln_count":11,"unpatched_count":11,"last_vuln_date":24,"fetched_at":85},"media2post","Phototools: media2post","1.0","\u003Cp>This plugin handles a number of things:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>An extra “create post” option in the row menu for mediaitems in the listview\u003C\u002Fli>\n\u003Cli>An new “create post featured image” bulk option\u003C\u002Fli>\n\u003Cli>add some code to make sure that when you delete a post, the image is cleared properly (post_parent = 0) so it shows up in the “unattached” filter\u003C\u002Fli>\n\u003Cli>add MediaRSS to your feed. \u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>By default it create “private” posts as I needed this plugin to deal with older photos. As I use the image postdate as\u003Cbr \u002F>\ndefault for the postdate, private leaves this date alone which publish and draft->publish by default moves the postdate\u003Cbr \u002F>\nthe date of publishing. Private is also easy to find in the “posts” window.\u003Cbr \u002F>\nThey also get an “media2post” tag so they are easy to find.\u003Cbr \u002F>\nDe owner of the post equals the owner of the image.\u003C\u002Fp>\n\u003Cp>Special thanks go to mr. Jeremy Felt who wrote “Automatic Featured Image Posts” and who’s code heavily\u003Cbr \u002F>\n“influenced” this plugin. I learned a lot from his code!\u003Cbr \u002F>\n(https:\u002F\u002Fjeremyfelt.com\u002Fwordpress\u002Fplugins\u002Fautomatic-featured-image-posts\u002F)\u003C\u002Fp>\n","Quickly create a post with the media item as featured image. Single or in batch. Part of the phototools plugins.",1201,"2019-05-08T07:35:00.000Z",[80,81,82,19,83],"batch","media","menu","post","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fmedia2post.zip","2026-04-06T09:54:40.288Z",{"slug":19,"name":87,"version":88,"author":7,"author_profile":8,"description":89,"short_description":90,"active_installs":11,"downloaded":91,"rating":11,"num_ratings":11,"last_updated":92,"tested_up_to":44,"requires_at_least":15,"requires_php":16,"tags":93,"homepage":95,"download_link":96,"security_score":23,"vuln_count":11,"unpatched_count":11,"last_vuln_date":24,"fetched_at":85},"Phototools: Basics","1.7","\u003Cp>Phototools replaces the default activity widget on the dashboard by three separate widgets with thumbnails.\u003Cbr \u002F>\nIt’s mend to use with the other “phototools” plugins like geo2wp, exifwidget etc.\u003Cbr \u002F>\nThe “published recent” and “publishing soon” also have links too view the post and to the edit screen.\u003Cbr \u002F>\nThe “Recent comments” shows the thumbnail of the parent post.\u003Cbr \u002F>\nthe number of items in the list is settable between 1 and 30.\u003C\u002Fp>\n\u003Cp>Besides this it implements a few extra’s:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>turn on\u002Foff support for shortcodes in widgets, supporting the shortcodes in the other phototools plugins\u003C\u002Fli>\n\u003Cli>turn on\u002Foff a general taxonomy “photogroup” to group photo’s in any groups you like\u003C\u002Fli>\n\u003Cli>Fuzzy dates on\u002Foff. Makes the postdates in the activity widgets more “humanlike”.\u003C\u002Fli>\n\u003Cli>Rich photo info https:\u002F\u002Fwww.schemaapp.com\u002Ftools\u002Fjsonld-schema-generator\u002FPhotograph\u002F)\u003C\u002Fli>\n\u003Cli>\u002Flatests option to redirect to the latest posts on your blog. For example: \u003Ca href=\"https:\u002F\u002Fgerhardhoogterp.nl\u002Flatest\" title=\"example\" rel=\"nofollow ugc\">Example: https:\u002F\u002Fgerhardhoogterp.nl\u002Flatest\u003C\u002Fa> will show your the latest photo I posted.\u003C\u002Fli>\n\u003C\u002Ful>\n","Phototools replaces the default activity widget on the dashboard by three separate widgets with thumbnails.",1171,"2019-05-08T07:36:00.000Z",[94,19],"dashboard","","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fphototools.zip",{"attackSurface":98,"codeSignals":194,"taintFlows":260,"riskAssessment":286,"analyzedAt":293},{"hooks":99,"ajaxHandlers":176,"restRoutes":182,"shortcodes":183,"cronEvents":192,"entryPointCount":193,"unprotectedCount":11},[100,106,110,113,117,122,126,129,132,136,140,144,148,152,157,160,164,168,172],{"type":101,"name":102,"callback":103,"file":104,"line":105},"action","init","myTextDomain","geo2wp.php",41,{"type":101,"name":107,"callback":108,"file":104,"line":109},"admin_init","hook_geo2wp_column",45,{"type":101,"name":107,"callback":111,"file":104,"line":112},"hook_geo2wp_post_column",49,{"type":101,"name":114,"callback":115,"priority":41,"file":104,"line":116},"add_attachment","get_exif_geoinfo",53,{"type":118,"name":119,"callback":120,"priority":41,"file":104,"line":121},"filter","plugin_row_meta","PluginLinks",57,{"type":101,"name":123,"callback":124,"file":104,"line":125},"admin_menu","add_phototools_menuitem",62,{"type":101,"name":107,"callback":127,"file":104,"line":128},"register_settingspage",66,{"type":101,"name":123,"callback":130,"file":104,"line":131},"create_geolocation_box",79,{"type":118,"name":133,"callback":134,"priority":41,"file":104,"line":135},"media_row_actions","reset_geoinfo_link",88,{"type":101,"name":137,"callback":138,"file":104,"line":139},"bulk_actions-upload","geo2wp_bulk_actions",93,{"type":101,"name":141,"callback":142,"priority":41,"file":104,"line":143},"handle_bulk_actions-upload","geo2wp_bulk_actions_handle",97,{"type":101,"name":145,"callback":146,"file":104,"line":147},"widgets_init","closure",102,{"type":101,"name":149,"callback":150,"file":104,"line":151},"rss2_ns","feed_addNameSpace",106,{"type":101,"name":153,"callback":154,"priority":155,"file":104,"line":156},"rss_item","feed_addMeta",5,110,{"type":101,"name":158,"callback":154,"priority":155,"file":104,"line":159},"rss2_item",114,{"type":101,"name":161,"callback":162,"file":104,"line":163},"admin_print_styles-edit.php","geo2wp_featuredImage_column_geo",327,{"type":101,"name":165,"callback":166,"file":104,"line":167},"admin_print_styles-upload.php","geo2wp_geoIcon_column_geo",378,{"type":101,"name":169,"callback":170,"priority":41,"file":104,"line":171},"manage_media_custom_column","geo2wp_custom_media_column_content",382,{"type":118,"name":173,"callback":174,"file":104,"line":175},"manage_media_columns","geo2wp_custom_media_column_headings",386,[177],{"action":178,"nopriv":179,"callback":180,"hasNonce":181,"hasCapCheck":179,"file":104,"line":32},"resetGeoHandler",false,"ajaxResetGeoHandler",true,[],[184,188],{"tag":185,"callback":186,"file":104,"line":187},"EXIF_locationmap","custom_EXIF_locationmap",71,{"tag":189,"callback":190,"file":104,"line":191},"EXIF_location","custom_EXIF_location",75,[],3,{"dangerousFunctions":195,"sqlUsage":196,"outputEscaping":198,"fileOperations":11,"externalRequests":11,"nonceChecks":258,"capabilityChecks":11,"bundledLibraries":259},[],{"prepared":11,"raw":11,"locations":197},[],{"escaped":199,"rawEcho":200,"locations":201},6,32,[202,205,207,208,210,212,214,216,218,220,222,224,226,228,230,231,232,234,236,237,238,240,242,243,244,246,248,249,250,252,254,256],{"file":104,"line":203,"context":204},205,"raw output",{"file":104,"line":206,"context":204},248,{"file":104,"line":206,"context":204},{"file":104,"line":209,"context":204},249,{"file":104,"line":211,"context":204},357,{"file":104,"line":213,"context":204},358,{"file":104,"line":215,"context":204},410,{"file":104,"line":217,"context":204},446,{"file":104,"line":219,"context":204},447,{"file":104,"line":221,"context":204},600,{"file":104,"line":223,"context":204},605,{"file":104,"line":225,"context":204},640,{"file":104,"line":227,"context":204},677,{"file":104,"line":229,"context":204},678,{"file":104,"line":229,"context":204},{"file":104,"line":229,"context":204},{"file":104,"line":233,"context":204},681,{"file":104,"line":235,"context":204},682,{"file":104,"line":235,"context":204},{"file":104,"line":235,"context":204},{"file":104,"line":239,"context":204},686,{"file":104,"line":241,"context":204},687,{"file":104,"line":241,"context":204},{"file":104,"line":241,"context":204},{"file":104,"line":245,"context":204},691,{"file":104,"line":247,"context":204},692,{"file":104,"line":247,"context":204},{"file":104,"line":247,"context":204},{"file":104,"line":251,"context":204},728,{"file":104,"line":253,"context":204},735,{"file":104,"line":255,"context":204},738,{"file":104,"line":257,"context":204},741,1,[],[261,278],{"entryPoint":262,"graph":263,"unsanitizedCount":11,"severity":277},"ajaxResetGeoHandler (geo2wp.php:196)",{"nodes":264,"edges":275},[265,270],{"id":266,"type":267,"label":268,"file":104,"line":269},"n0","source","$_SERVER['HTTP_REFERER']",208,{"id":271,"type":272,"label":273,"file":104,"line":269,"wp_function":274},"n1","sink","header() [Header Injection]","header",[276],{"from":266,"to":271,"sanitized":181},"low",{"entryPoint":279,"graph":280,"unsanitizedCount":11,"severity":277},"\u003Cgeo2wp> (geo2wp.php:0)",{"nodes":281,"edges":284},[282,283],{"id":266,"type":267,"label":268,"file":104,"line":269},{"id":271,"type":272,"label":273,"file":104,"line":269,"wp_function":274},[285],{"from":266,"to":271,"sanitized":181},{"summary":287,"deductions":288},"The geo2wp plugin version 1.4 exhibits a generally positive security posture based on the static analysis. The absence of dangerous functions, file operations, and external HTTP requests are strong indicators of secure coding practices. Crucially, all SQL queries are executed using prepared statements, which significantly mitigates the risk of SQL injection vulnerabilities. The presence of a nonce check on one of the entry points is also a positive sign, though its absence on other potential entry points warrants consideration.\n\nHowever, a notable concern arises from the output escaping. With only 16% of 38 outputs being properly escaped, there is a substantial risk of Cross-Site Scripting (XSS) vulnerabilities. Malicious actors could potentially inject and execute JavaScript code in the user's browser through these unescaped outputs. The vulnerability history also shows no recorded issues, which is favorable, but it's important to note that this could also indicate limited security auditing or a lack of discovered vulnerabilities rather than absolute security.\n\nIn conclusion, while geo2wp demonstrates strengths in areas like SQL query handling and a lack of critical taint flows, the significant number of unescaped outputs presents a tangible and serious risk. This necessitates immediate attention to improve output sanitization to prevent potential XSS attacks. The absence of capability checks on the entry points, while not flagged as an immediate risk due to the limited attack surface and existing nonce check, could be a future area for hardening.",[289,291],{"reason":290,"points":29},"Low percentage of properly escaped output",{"reason":292,"points":155},"No capability checks on entry points","2026-04-16T14:37:48.923Z",{"wat":295,"direct":306},{"assetPaths":296,"generatorPatterns":300,"scriptPaths":301,"versionParams":302},[297,298,299],"\u002Fwp-content\u002Fplugins\u002Fgeo2wp\u002Fgeo2wp-admin.css","\u002Fwp-content\u002Fplugins\u002Fgeo2wp\u002Fgeo2wp.css","\u002Fwp-content\u002Fplugins\u002Fgeo2wp\u002Fgeo2wp.js",[],[299],[303,304,305],"geo2wp\u002Fgeo2wp-admin.css?ver=","geo2wp\u002Fgeo2wp.css?ver=","geo2wp\u002Fgeo2wp.js?ver=",{"cssClasses":307,"htmlComments":310,"htmlAttributes":313,"restEndpoints":318,"jsGlobals":319,"shortcodeOutput":321},[308,309],"geo2wp-map-container","geo2wp-location-details",[311,312],"\u003C!-- EXIF Location Map -->","\u003C!-- Geo2WP EXIF Location -->",[314,315,316,317],"data-lat","data-lng","data-zoom","data-marker-icon",[],[320],"geo2wp_options_data",[322,323],"\u003Cdiv class=\"geo2wp-map-container\"","\u003Cdiv class=\"geo2wp-location-details\"",{"error":181,"url":325,"statusCode":326,"statusMessage":327,"message":327},"http:\u002F\u002Flocalhost\u002Fapi\u002Fplugins\u002Fgeo2wp\u002Fbundle",404,"no bundle for this plugin yet",{"slug":4,"current_version":6,"total_versions":258,"versions":329},[330],{"version":6,"download_url":22,"svn_tag_url":331,"released_at":24,"has_diff":179,"diff_files_changed":332,"diff_lines":24,"trac_diff_url":24,"vulnerabilities":333,"is_current":181},"https:\u002F\u002Fplugins.svn.wordpress.org\u002Fgeo2wp\u002Ftags\u002F1.4\u002F",[],[]]