[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fzNhOsO4Z_XHREdPnt1j48H_E6H1SMMgMq7HQlK8Ltj8":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":134,"fingerprints":465},"wp-present","WP Present – beta","0.9.7","Steven Word","https:\u002F\u002Fprofiles.wordpress.org\u002Fstevenkword\u002F","\u003Cp>\u003Cstrong>Create an Account or checkout the new DEMO:\u003C\u002Fstrong> \u003Ca href=\"http:\u002F\u002Fwppresent.com\" rel=\"nofollow ugc\">http:\u002F\u002Fwppresent.com\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>Want to help out? Check out the \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fstevenkword\u002FWP-Present#developer-notes\" rel=\"nofollow ugc\">Developer Notes\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>Create interactive slide presentations, the WordPress way.\u003C\u002Fp>\n\u003Cp>Presentation layer powered by reveal.js from Hakim El Hattab (http:\u002F\u002Fhakim.se).\u003C\u002Fp>\n\u003Cp>Currently works best with Chrome & Safari\u003C\u002Fp>\n\u003Cp>If you’d like to contribute to the plugin you can find it on GitHub: https:\u002F\u002Fgithub.com\u002Fstevenkword\u002FWP-Present\u003C\u002Fp>\n\u003Ch3>Developers\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Stable branch, master, is version 0.9.6 and is only compatible up to WordPress 3.8 due to a problem introduced in WordPress 3.9 with the TinyMCE 4.0 Update. See \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fstevenkword\u002FWP-Present\u002Fissues\u002F8\" rel=\"nofollow ugc\">Issue #8\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Development against WordPress 3.9+ should be done against the development branch on GitHub\u003C\u002Fli>\n\u003C\u002Ful>\n","Create an Account or checkout the new DEMO: http:\u002F\u002Fwppresent.com",10,5075,90,4,"2014-12-17T21:56:00.000Z","4.1.42","3.6","",[20,21,22,23,24],"keynote","powerpoint","present","presentation","presentations","http:\u002F\u002Fwppresent.org\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwp-present.zip",85,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":27,"avg_patch_time_days":36,"trust_score":37,"computed_at":38},"stevenkword",2,210,30,84,"2026-04-05T01:20:54.272Z",[40,60,78,97,115],{"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":18,"tested_up_to":52,"requires_at_least":53,"requires_php":18,"tags":54,"homepage":57,"download_link":58,"security_score":48,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":59},"presenter","Presenter","1.5.2","Aaron D. Campbell","https:\u002F\u002Fprofiles.wordpress.org\u002Faaroncampbell\u002F","\u003Cp>You’ll be able to create presentations in no time using WordPress’s familiar built-in toolset. No need for SlideShare, with Presenter you are hosting your own presentations and can share them by simply linking to your site. The presentations are built using \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fhakimel\u002Freveal.js\" rel=\"nofollow ugc\">Reveal.js\u003C\u002Fa> by Hakim El Hattab, which means it is extremely extensible, works with most browsers, and even works with presenter remotes.\u003C\u002Fp>\n\u003Cp>Professional slideshows right on your WordPress site.\u003C\u002Fp>\n\u003Cp>Collaborate on the plugin: \u003Ca href=\"http:\u002F\u002Fgithub.com\u002Faaroncampbell\u002Fpresenter\" rel=\"nofollow ugc\">Presenter on GitHub\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>Brought to you by \u003Ca href=\"http:\u002F\u002Faarondcampbell.com\u002F\" title=\"WordPress Plugins\" rel=\"nofollow ugc\">Aaron D. Campbell\u003C\u002Fa>\u003C\u002Fp>\n","Slideshow presentations made simple on WordPress. Design each slide as you would a post using wysiwyg. Works with most presenter remotes as well!",100,15156,80,5,"6.1.10","4.8",[20,21,24,55,56],"slides","slideshare","http:\u002F\u002Faarondcampbell.com\u002Fwordpress-plugins\u002Fpresenter\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fpresenter.1.5.2.zip","2026-03-15T10:48:56.248Z",{"slug":61,"name":62,"version":63,"author":64,"author_profile":65,"description":66,"short_description":67,"active_installs":68,"downloaded":69,"rating":70,"num_ratings":51,"last_updated":71,"tested_up_to":72,"requires_at_least":73,"requires_php":18,"tags":74,"homepage":76,"download_link":77,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"responsive-slide","Responsive Slide","1.0.0","Toro_Unit (Hiroshi Urabe)","https:\u002F\u002Fprofiles.wordpress.org\u002Ftoro_unit\u002F","\u003Cp>Responsive iframe for embed slideshow.\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ftorounit\u002Fresponsive-slide\" rel=\"nofollow ugc\">This Plugin published on GitHub.\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>Donation: Please send \u003Ca href=\"https:\u002F\u002Fblockchain.info\u002Fja\u002Faddress\u002F3HwkojX2pd9wc5kPFdXnDXMTNbgBmPRygX\" rel=\"nofollow ugc\">bitcoin\u003C\u002Fa> or \u003Ca href=\"http:\u002F\u002Fwww.amazon.co.jp\u002Fregistry\u002Fwishlist\u002FCOKSXS25MVQV\" rel=\"nofollow ugc\">My Wishlist\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch4>Cover Images\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fprofiles.wordpress.org\u002Fspicagraph\u002F\" rel=\"nofollow ugc\">spicagraph\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Support\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fspeakerdeck.com\" rel=\"nofollow ugc\">Speaker Deck\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fwww.slideshare.net\" rel=\"nofollow ugc\">SlideShare\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n","Responsive iframe for embed slideshow.",50,3588,88,"2017-08-21T19:51:00.000Z","4.8.28","4.4",[20,21,75,23,24],"ppt","https:\u002F\u002Fgithub.com\u002Ftorounit\u002Fresponsive-slide","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fresponsive-slide.1.0.0.zip",{"slug":79,"name":80,"version":81,"author":82,"author_profile":83,"description":84,"short_description":85,"active_installs":86,"downloaded":87,"rating":48,"num_ratings":88,"last_updated":89,"tested_up_to":90,"requires_at_least":91,"requires_php":92,"tags":93,"homepage":95,"download_link":96,"security_score":48,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"presentation-block","Presentation Block","1.0.4","Thong Dang","https:\u002F\u002Fprofiles.wordpress.org\u002Fdanhthong\u002F","\u003Cp>This plugin requires WordPress version 5.3 or higher! It works best if you also have the \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fgutenberg\u002F\" rel=\"ugc\">Gutenberg\u003C\u002Fa> plugin installed and up-to-date.\u003Cbr \u002F>\nReport issues, or collaborate, on \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fabstractwp\u002Fslide\" rel=\"nofollow ugc\">Github\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Creates a custom post type “Presentation”, which will render as a presentation on the front end using \u003Ca href=\"https:\u002F\u002Frevealjs.com\" rel=\"nofollow ugc\">Reveal.js\u003C\u002Fa>.\u003C\u002Fli>\n\u003Cli>Enables the block editor with a “Presentation Block” block, which can be used as a container for each slide in the presentation.\u003C\u002Fli>\n\u003Cli>You can add background colors, gradients, images, even iframes for the whole presentation, but also per slide.\u003C\u002Fli>\n\u003Cli>You can select a font, color, and size.\u003C\u002Fli>\n\u003Cli>If that’s not enough, you can always add some custom CSS!\u003C\u002Fli>\n\u003Cli>You can import a custom font by adding \u003Ccode>@import url('https:\u002F\u002Ffonts.googleapis.com\u002Fcss?family=...');\u003C\u002Fcode> above any other rules in the CSS input field.\u003C\u002Fli>\n\u003Cli>It’s possible to include some notes with every slide.\u003C\u002Fli>\n\u003Cli>You can enter a speaker view which will show the current slide, next slide, notes and timers.\u003C\u002Fli>\n\u003Cli>A lot more options coming soon!\u003C\u002Fli>\n\u003C\u002Ful>\n","Creates a custom post type “Presentation”, which will render as a presentation on the front end using Reveal.js.",20,4470,1,"2026-02-28T00:15:00.000Z","6.5.8","5.3","5.6",[94,20,21,24,55],"gutenberg","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fpresentation-block\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fpresentation-block.1.0.5.zip",{"slug":98,"name":99,"version":100,"author":101,"author_profile":102,"description":103,"short_description":104,"active_installs":48,"downloaded":105,"rating":48,"num_ratings":14,"last_updated":106,"tested_up_to":107,"requires_at_least":108,"requires_php":18,"tags":109,"homepage":113,"download_link":114,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"html5-slideshow-presentations","HTML5 Slideshow Presentations","1.0.7","Justin Sternberg","https:\u002F\u002Fprofiles.wordpress.org\u002Fjtsternberg\u002F","\u003Cp>With this plugin, You’ll be able to create a presentation in no time using WordPress’ familiar built-in toolset, and the best part is, You won’t need to upload to slideshare when you’re done. You’re hosting your own presentations and can share\u002Fpresent them anytime. The presentation template is based on \u003Ca href=\"http:\u002F\u002Fcode.google.com\u002Fp\u002Fhtml5slides\u002F\" rel=\"nofollow ugc\">html5slides\u003C\u002Fa> by Luke Mahé and Marcin Wichary. This plugin was built with CSS3 and HTML5 and is intended to be used on modern browsers.\u003C\u002Fp>\n\u003Cp>Feel free to \u003Ca href=\"http:\u002F\u002Fj.ustin.co\u002FzMQtc0\" rel=\"nofollow ugc\">contribute to this plugin on github\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch4>Demo\u003C\u002Fh4>\n\u003Cp>\u003Ca href=\"http:\u002F\u002Fj.ustin.co\u002FyZe7Il\" rel=\"nofollow ugc\">http:\u002F\u002Fdsgnwrks.pro\u002Fhtml5-presentation-example\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch4>Instructions for editing slides\u003C\u002Fh4>\n\u003Cp>If you \u003Ca href=\"http:\u002F\u002Fj.ustin.co\u002FyZe7Il\" rel=\"nofollow ugc\">view the demo\u003C\u002Fa>, it will walk you through the styles and slide types available in this plugin. The sample presentation is available for you to download so you can see the slides in action.  Just \u003Ca href=\"http:\u002F\u002Fj.ustin.co\u002Fyk0vMn\" rel=\"nofollow ugc\">download the xml file\u003C\u002Fa>, and import it to WordPress the way you normally import WordPress to WordPress.\u003C\u002Fp>\n\u003Ch4>Customizing the Plugin\u003C\u002Fh4>\n\u003Cp>If you want to use your own styles and completely disregard the default styles provided, add a stylesheet named \u003Ccode>html5slide-replace.css\u003C\u002Fcode> to your theme folder. If you would like to add a stylesheet in addition to the one provided, instead add a stylesheet named \u003Ccode>html5slide-style.css\u003C\u002Fcode> to your theme folder.\u003C\u002Fp>\n\u003Cp>The plugin provides an option to enable\u002Fdisable \u003Ccode>\u003C?php wp_head(); ?>\u003C\u002Fcode> as well as \u003Ccode>\u003C?php wp_footer(); ?>\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Cp>This plugin is intended to operate completely independent of your installed theme, so by default this option is off. You may find that when \u003Ccode>\u003C?php wp_head(); ?>\u003C\u002Fcode> is enabled, that your theme, and other plugins stylesheets may interfere with the default stylesheet, but you may be missing other plugins functionality if you disable it.\u003C\u002Fp>\n\u003Cp>The \u003Ccode>\u003C?php wp_footer(); ?>\u003C\u002Fcode> option will allow the admin bar to be displayed on the slide page (if it is enabled) and will allow other plugins and your theme to add functionality. If you have a plugin that keeps track of analytics and you want it to track the slide pages, you will probably want this enabled.\u003C\u002Fp>\n\u003Cp>That being said if you don’t want \u003Ccode>\u003C?php wp_head(); ?>\u003C\u002Fcode> or \u003Ccode>\u003C?php wp_footer(); ?>\u003C\u002Fcode> enabled, you can use the built-in hooks, \u003Ccode>dsgnwrks_html5_head();\u003C\u002Fcode> and \u003Ccode>dsgnwrks_html5_footer();\u003C\u002Fcode> to add functionality to the slide pages.\u003C\u002Fp>\n\u003Cp>\u003Cem>Example:\u003C\u002Fem>\u003C\u002Fp>\n\u003Cpre>\u003Ccode>\u003C?php\nadd_action( 'dsgnwrks_html5_footer', 'add_slide_google_analytics' );\nfunction add_slide_google_analytics() {\n    ?>\n    \u003Cscript type=\"text\u002Fjavascript\">\n    var gaJsHost = ((\"https:\" == document.location.protocol) ? \"https:\u002F\u002Fssl.\" : \"http:\u002F\u002Fwww.\");\n    document.write(unescape(\"%3Cscript src='\" + gaJsHost + \"google-analytics.com\u002Fga.js' type='text\u002Fjavascript'%3E%3C\u002Fscript%3E\"));\n    \u003C\u002Fscript>\n    \u003Cscript type=\"text\u002Fjavascript\">\n    try{\n    var pageTracker = _gat._getTracker(\"UA-xxxxxx-x\");\n    pageTracker._trackPageview();\n    } catch(err) {}\n    \u003C\u002Fscript>\n    \u003C?php\n}\n?>\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>Different Slide Types\u003C\u002Fh4>\n\u003Cp>Each Slide has several options for determing the type of slide, whether it is a slide without a title, a segue slide, if you want animated revealing child elements, ect.\u003C\u002Fp>\n\u003Ch4>Different layouts\u003C\u002Fh4>\n\u003Cp>Each “Title Slide” has a few options for determining the type of presentation, including whether it’s widescreen, “Faux Widescreen,” or standard, and if the presentation will have a logo stamp on the bottom right (the featured image).\u003C\u002Fp>\n\u003Ch4>Instructions for presenting\u003C\u002Fh4>\n\u003Cp>After you create a presentation, create a page to display it on. You’ll see a new dropdown menu for choosing HTML5 Presentations. Select you presentation, save and view!\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Press Enter, space, right arrow to advance; Backspace, left arrow to go back.\u003C\u002Fli>\n\u003Cli>Enter full-screen mode (F11 or Shift-Command-F in Chrome) before presenting.\u003C\u002Fli>\n\u003Cli>You should be able to press Ctrl+R\u002FF5\u002FCmd+R at any time to refresh without losing your place in the presentation.\u003C\u002Fli>\n\u003Cli>If an iframe steals your focus and you can’t advance any more, please click outside the slide on the background to give the focus back to the presentation.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Caveats\u003C\u002Fh4>\n\u003Cp>These presentations should work on modern Chrome, Firefox, Safari, Opera… and generally touch devices. Your mileage in IE9 may vary.\u003C\u002Fp>\n\u003Ch3>Presentation Examples\u003C\u002Fh3>\n\u003Ch4>Send me your presentations!\u003C\u002Fh4>\n\u003Cp>Send me links to presentations you make (\u003Ca href=\"http:\u002F\u002Fj.ustin.co\u002Fscbo43\" rel=\"nofollow ugc\">contact form\u003C\u002Fa> or \u003Ca href=\"http:\u002F\u002Fj.ustin.co\u002FwUfBD3\" rel=\"nofollow ugc\">@jtsternberg on twitter\u003C\u002Fa>), and I’ll post them here, as well as on my site.\u003C\u002Fp>\n\u003Ch4>Sample Slide Show\u003C\u002Fh4>\n\u003Cp>\u003Ca href=\"http:\u002F\u002Fj.ustin.co\u002FyZe7Il\" rel=\"nofollow ugc\">http:\u002F\u002Fdsgnwrks.pro\u002Fhtml5-presentation-example\u003C\u002Fa>\u003C\u002Fp>\n","Create HTML5 slideshow presentations using our favorite cms, WordPress. Host your own presentations and share\u002Fpresent them anytime.",22563,"2013-09-27T15:59:00.000Z","3.6.1","3.1",[110,111,24,55,112],"css3","html5","slideshow","http:\u002F\u002Fj.ustin.co\u002Fs3bst2","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fhtml5-slideshow-presentations.zip",{"slug":116,"name":117,"version":118,"author":119,"author_profile":120,"description":121,"short_description":122,"active_installs":86,"downloaded":123,"rating":48,"num_ratings":88,"last_updated":124,"tested_up_to":125,"requires_at_least":126,"requires_php":18,"tags":127,"homepage":132,"download_link":133,"security_score":27,"vuln_count":28,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30},"linchpin-next-page-link-previous-page-link","Linchpin – PrevNextPage","1.0.2","Aaron Ware","https:\u002F\u002Fprofiles.wordpress.org\u002Faware\u002F","\u003Cp>Create next\u002Fprevious links for pages. Adds the functions next_page_link() and previous_page_link() which links sibling to page(s).\u003Cbr \u002F>\nIf your page doesn’t have a direct sibling the plugin will try to go out to the parent of the current page and get the parent’s next sibling. If enabled the plugin will also loop from end->beginning and beginning->end.\u003C\u002Fp>\n\u003Cp>This plugin is great for utilizing WordPress for presentations. If you create a set of pages. This plugin will cycle through them. Additionally you could utilize some javascript to create a timer to automatically go from page to page.\u003C\u002Fp>\n\u003Cp>This plugin is based on ‘Next and Previous Page not Post’ by Matt McInvale. Although it’s gone through almost a complete rewrite from his release in 09.  This plugin is a bit more optimized to take advantage of newer plugin techniques. Includes code from banesto as well regarding references to grandparent pages. Also added in additional features such as $args array for easier customization down the road. This plugin is great for utilizing wordpress as a presentation tool.\u003C\u002Fp>\n\u003Ch4>See the FAQs Page for Snippets and Examples\u003C\u002Fh4>\n","Create sibling page links. Similar to next_post_link() & previous_post_link() but for pages. Great for utilizing Wordpress for Presentations or it &hellip;",3582,"2012-09-06T19:35:00.000Z","3.4.2","3.0",[128,129,24,130,131],"next","pages","prev","previous","http:\u002F\u002Fhttp:\u002F\u002Fwordpress.org\u002Fextend\u002Fplugins\u002Flinchpin-next-page-link-previous-page-link","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Flinchpin-next-page-link-previous-page-link.zip",{"attackSurface":135,"codeSignals":328,"taintFlows":393,"riskAssessment":455,"analyzedAt":464},{"hooks":136,"ajaxHandlers":304,"restRoutes":325,"shortcodes":326,"cronEvents":327,"entryPointCount":51,"unprotectedCount":28},[137,143,147,152,156,160,164,168,172,176,179,183,186,190,195,200,204,205,206,208,211,215,220,224,226,228,230,234,236,240,243,246,250,253,257,260,264,268,271,275,279,281,284,288,292,297,299,301],{"type":138,"name":139,"callback":140,"file":141,"line":142},"action","plugins_loaded","action_plugins_loaded","inc\\class-modal-customizer.php",34,{"type":138,"name":144,"callback":145,"file":141,"line":146},"wp_loaded","action_wp_loaded",37,{"type":138,"name":148,"callback":149,"priority":150,"file":141,"line":151},"customize_register","action_customize_register",99,40,{"type":138,"name":153,"callback":154,"file":141,"line":155},"admin_init","action_admin_init",42,{"type":138,"name":157,"callback":158,"file":141,"line":159},"admin_enqueue_scripts","action_admin_enqueue_scripts",43,{"type":138,"name":161,"callback":162,"priority":86,"file":141,"line":163},"admin_head","action_admin_head",44,{"type":138,"name":165,"callback":166,"priority":86,"file":141,"line":167},"admin_footer","action_admin_footer",45,{"type":138,"name":169,"callback":170,"priority":86,"file":141,"line":171},"customize_controls_print_scripts","print_head_scripts",48,{"type":138,"name":173,"callback":174,"file":141,"line":175},"customize_controls_print_footer_scripts","_wp_footer_scripts",49,{"type":138,"name":177,"callback":178,"priority":86,"file":141,"line":68},"customize_controls_print_styles","print_admin_styles",{"type":138,"name":180,"callback":181,"file":141,"line":182},"wp_head","customize_preview_base",74,{"type":138,"name":180,"callback":184,"file":141,"line":185},"customize_preview_html5",75,{"type":138,"name":187,"callback":188,"priority":86,"file":141,"line":189},"wp_footer","customize_preview_settings",76,{"type":138,"name":191,"callback":192,"priority":193,"file":141,"line":194},"shutdown","customize_preview_signature",1000,77,{"type":196,"name":197,"callback":198,"file":141,"line":199},"filter","wp_die_handler","remove_preview_signature",78,{"type":138,"name":201,"callback":202,"file":203,"line":155},"admin_menu","action_admin_menu","inc\\class-wp-present-admin.php",{"type":138,"name":157,"callback":158,"file":203,"line":159},{"type":138,"name":161,"callback":162,"priority":86,"file":203,"line":163},{"type":138,"name":165,"callback":166,"priority":86,"file":203,"line":207},46,{"type":196,"name":209,"callback":210,"file":203,"line":171},"admin_body_class","filter_admin_body_class",{"type":196,"name":212,"callback":213,"file":203,"line":214},"screen_options_show_screen","__return_false",119,{"type":138,"name":216,"callback":217,"file":218,"line":219},"init","action_init_check_version","inc\\class-wp-present-connect.php",59,{"type":138,"name":216,"callback":221,"file":222,"line":223},"action_init_register_post_type","inc\\class-wp-present-core.php",73,{"type":138,"name":216,"callback":225,"file":222,"line":182},"action_init_register_taxonomy",{"type":138,"name":216,"callback":227,"file":222,"line":185},"action_init_register_shortcode",{"type":138,"name":216,"callback":229,"file":222,"line":189},"action_init_add_endpoints",{"type":138,"name":231,"callback":232,"priority":150,"file":222,"line":233},"wp","action_wp_show_admin_bar",79,{"type":138,"name":180,"callback":235,"priority":150,"file":222,"line":50},"action_wp_head",{"type":138,"name":237,"callback":238,"priority":150,"file":222,"line":239},"wp_enqueue_scripts","action_wp_enqueue_scripts",81,{"type":138,"name":187,"callback":241,"priority":150,"file":222,"line":242},"action_wp_footer",82,{"type":196,"name":244,"callback":245,"file":222,"line":27},"template_include","filter_template_include",{"type":138,"name":247,"callback":248,"file":222,"line":249},"restrict_manage_posts","action_restrict_manage_posts",89,{"type":138,"name":251,"callback":252,"file":222,"line":13},"parse_query","action_parse_query",{"type":196,"name":254,"callback":255,"priority":11,"file":222,"line":256},"post_type_link","append_query_string",93,{"type":138,"name":216,"callback":258,"file":222,"line":259},"action_init_editor_styles",104,{"type":196,"name":261,"callback":262,"file":222,"line":263},"tiny_mce_before_init","filter_tiny_mce_before_init",105,{"type":196,"name":265,"callback":266,"file":222,"line":267},"mce_external_plugins","filter_mce_external_plugins",106,{"type":138,"name":216,"callback":269,"file":222,"line":270},"register_image_sizes",112,{"type":196,"name":272,"callback":273,"file":222,"line":274},"image_size_names_choose","filter_image_size_names_choose",113,{"type":196,"name":276,"callback":277,"file":222,"line":278},"body_class","filter_body_class",116,{"type":138,"name":157,"callback":158,"file":280,"line":155},"inc\\class-wp-present-settings.php",{"type":138,"name":216,"callback":217,"file":282,"line":283},"inc\\class-wp-present-singleton.php",51,{"type":196,"name":285,"callback":286,"priority":11,"file":287,"line":163},"get_edit_post_link","filter_get_edit_post_link","inc\\class-wp-present-taxonomy-bridge.php",{"type":138,"name":289,"callback":290,"file":287,"line":291},"save_post","action_save_post",47,{"type":138,"name":293,"callback":294,"file":295,"line":296},"add_meta_boxes","action_add_meta_boxes","inc\\class-wp-present-video-player.php",53,{"type":138,"name":153,"callback":294,"file":295,"line":298},55,{"type":138,"name":216,"callback":217,"file":295,"line":300},58,{"type":138,"name":216,"callback":217,"file":302,"line":303},"wp-present.php",96,[305,311,315,318,321],{"action":306,"nopriv":307,"callback":308,"hasNonce":309,"hasCapCheck":307,"file":222,"line":310},"get_slide",false,"action_wp_ajax_get_slide",true,97,{"action":312,"nopriv":307,"callback":313,"hasNonce":309,"hasCapCheck":307,"file":222,"line":314},"update_slide","action_wp_ajax_update_slide",98,{"action":316,"nopriv":307,"callback":317,"hasNonce":309,"hasCapCheck":307,"file":222,"line":150},"new_slide","action_wp_ajax_new_slide",{"action":319,"nopriv":307,"callback":320,"hasNonce":309,"hasCapCheck":307,"file":222,"line":48},"delete_slide","action_wp_ajax_delete_slide",{"action":322,"nopriv":307,"callback":323,"hasNonce":309,"hasCapCheck":307,"file":222,"line":324},"update_presentation","action_wp_ajax_update_presentation",101,[],[],[],{"dangerousFunctions":329,"sqlUsage":330,"outputEscaping":332,"fileOperations":88,"externalRequests":28,"nonceChecks":51,"capabilityChecks":34,"bundledLibraries":389},[],{"prepared":34,"raw":28,"locations":331},[],{"escaped":142,"rawEcho":333,"locations":334},28,[335,338,340,342,344,346,348,350,352,354,356,358,360,362,364,366,368,370,372,374,376,378,380,383,384,385,387,388],{"file":141,"line":336,"context":337},248,"raw output",{"file":203,"line":339,"context":337},182,{"file":222,"line":341,"context":337},559,{"file":222,"line":343,"context":337},560,{"file":222,"line":345,"context":337},561,{"file":222,"line":347,"context":337},562,{"file":222,"line":349,"context":337},563,{"file":222,"line":351,"context":337},564,{"file":222,"line":353,"context":337},566,{"file":222,"line":355,"context":337},567,{"file":222,"line":357,"context":337},657,{"file":222,"line":359,"context":337},661,{"file":222,"line":361,"context":337},663,{"file":222,"line":363,"context":337},696,{"file":222,"line":365,"context":337},815,{"file":222,"line":367,"context":337},818,{"file":222,"line":369,"context":337},1052,{"file":280,"line":371,"context":337},164,{"file":280,"line":373,"context":337},173,{"file":375,"line":11,"context":337},"templates\\embed.php",{"file":375,"line":377,"context":337},71,{"file":375,"line":379,"context":337},72,{"file":381,"line":382,"context":337},"templates\\presentation.php",11,{"file":381,"line":189,"context":337},{"file":381,"line":194,"context":337},{"file":386,"line":11,"context":337},"templates\\slide.php",{"file":386,"line":159,"context":337},{"file":386,"line":163,"context":337},[390],{"name":391,"version":29,"knownCves":392},"TinyMCE",[],[394,411,420,430,442],{"entryPoint":395,"graph":396,"unsanitizedCount":88,"severity":410},"action_admin_head (inc\\class-wp-present-admin.php:148)",{"nodes":397,"edges":408},[398,403],{"id":399,"type":400,"label":401,"file":203,"line":402},"n0","source","$_GET",158,{"id":404,"type":405,"label":406,"file":203,"line":339,"wp_function":407},"n1","sink","echo() [XSS]","echo",[409],{"from":399,"to":404,"sanitized":307},"medium",{"entryPoint":412,"graph":413,"unsanitizedCount":28,"severity":419},"\u003Cclass-wp-present-admin> (inc\\class-wp-present-admin.php:0)",{"nodes":414,"edges":417},[415,416],{"id":399,"type":400,"label":401,"file":203,"line":402},{"id":404,"type":405,"label":406,"file":203,"line":339,"wp_function":407},[418],{"from":399,"to":404,"sanitized":309},"low",{"entryPoint":421,"graph":422,"unsanitizedCount":28,"severity":419},"action_wp_ajax_get_slide (inc\\class-wp-present-core.php:1038)",{"nodes":423,"edges":428},[424,427],{"id":399,"type":400,"label":425,"file":222,"line":426},"$_REQUEST",1044,{"id":404,"type":405,"label":406,"file":222,"line":369,"wp_function":407},[429],{"from":399,"to":404,"sanitized":309},{"entryPoint":431,"graph":432,"unsanitizedCount":28,"severity":419},"action_wp_ajax_update_slide (inc\\class-wp-present-core.php:1061)",{"nodes":433,"edges":440},[434,437],{"id":399,"type":400,"label":435,"file":222,"line":436},"$_REQUEST['background-image']",1080,{"id":404,"type":405,"label":438,"file":222,"line":436,"wp_function":439},"get_col() [SQLi]","get_col",[441],{"from":399,"to":404,"sanitized":309},{"entryPoint":443,"graph":444,"unsanitizedCount":28,"severity":419},"\u003Cclass-wp-present-core> (inc\\class-wp-present-core.php:0)",{"nodes":445,"edges":452},[446,447,448,450],{"id":399,"type":400,"label":425,"file":222,"line":426},{"id":404,"type":405,"label":406,"file":222,"line":369,"wp_function":407},{"id":449,"type":400,"label":435,"file":222,"line":436},"n2",{"id":451,"type":405,"label":438,"file":222,"line":436,"wp_function":439},"n3",[453,454],{"from":399,"to":404,"sanitized":309},{"from":449,"to":451,"sanitized":309},{"summary":456,"deductions":457},"The \"wp-present\" v0.9.7 plugin exhibits a generally good security posture based on the provided static analysis.  All identified AJAX entry points have nonce checks, and two of them include capability checks, demonstrating a commitment to restricting unauthorized access.  Furthermore, the plugin utilizes prepared statements for all its SQL queries, mitigating the risk of SQL injection vulnerabilities. The absence of any recorded CVEs or historical vulnerabilities also contributes positively to its perceived security.  However, a notable concern is the 55% rate of proper output escaping. This means that over half of the plugin's output is not being properly sanitized, potentially opening it up to cross-site scripting (XSS) vulnerabilities if user-supplied data is directly outputted without sufficient sanitization.  Additionally, one unsanitized path flow was detected in the taint analysis, which warrants further investigation to understand its potential impact. The presence of a file operation without further context is also a minor point of interest.\n\nDespite the promising aspects like robust authentication checks and secure database interactions, the insufficient output escaping and the detected unsanitized path are significant weaknesses. These issues, if exploited, could lead to severe security incidents like data theft or site defacement. The lack of past vulnerabilities is a good sign, but it doesn't negate the risks present in the current code. Developers should prioritize addressing the output escaping and the identified taint flow to improve the plugin's overall security and ensure it aligns with best practices for preventing common web vulnerabilities.",[458,461],{"reason":459,"points":460},"Output escaping is only 55% proper",8,{"reason":462,"points":463},"Taint analysis detected unsanitized paths",7,"2026-03-17T00:29:06.558Z",{"wat":466,"direct":480},{"assetPaths":467,"generatorPatterns":473,"scriptPaths":474,"versionParams":475},[468,469,470,471,472],"\u002Fwp-content\u002Fplugins\u002Fwp-present\u002Fjs\u002Fcustomize-controls.js","\u002Fwp-content\u002Fplugins\u002Fwp-present\u002Fcss\u002Fwp-present.css","\u002Fwp-content\u002Fplugins\u002Fwp-present\u002Fjs\u002Fwp-present-frontend.js","\u002Fwp-content\u002Fplugins\u002Fwp-present\u002Fjs\u002Fwp-present-editor.js","\u002Fwp-content\u002Fplugins\u002Fwp-present\u002Fjs\u002Fwp-present-admin.js",[],[468,470,471,472],[476,477,478,479],"wp-present\u002Fcss\u002Fwp-present.css?ver=","wp-present\u002Fjs\u002Fwp-present-frontend.js?ver=","wp-present\u002Fjs\u002Fwp-present-editor.js?ver=","wp-present\u002Fjs\u002Fwp-present-admin.js?ver=",{"cssClasses":481,"htmlComments":485,"htmlAttributes":492,"restEndpoints":495,"jsGlobals":497,"shortcodeOutput":502},[482,483,484],"wp-present-editor-container","wp-present-frontend-wrapper","wp-present-admin-wrapper",[486,487,488,489,490,491],"\u003C!-- WP Present Modal Customizer -->","\u003C!-- WP Present Core -->","\u003C!-- WP Present Admin -->","\u003C!-- WP Present Settings -->","\u003C!-- WP Present Taxonomy Bridge -->","\u003C!-- WP Present Loader Class -->",[493,494],"data-wp-present-setting","data-wp-present-control",[496],"\u002Fwp-json\u002Fwp-present\u002F",[498,499,500,501],"WP_Present_Core","WP_Present_Loader","WP_Present_Modal_Customizer","wpp_is_presentation",[503,504,505],"[wp-present-slides]","[wp-present-slide]","[wp-present-nav]"]