[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fGJKhRUB9cv9JlQUmgXeTTPCy58bCCdszGllOVhDdHN0":3,"$fB1W2uyfrZF5Sp1xKVNe9qbW2Y_aRVloU1k9EMhbc0lw":199,"$fAxAPIb_iAcGosFHd2P5UM3YHxiIamb-zhK1Gl_mFxJE":204},{"slug":4,"name":5,"version":6,"author":7,"author_profile":8,"description":9,"short_description":10,"active_installs":11,"downloaded":12,"rating":13,"num_ratings":13,"last_updated":14,"tested_up_to":15,"requires_at_least":16,"requires_php":17,"tags":18,"homepage":24,"download_link":25,"security_score":26,"vuln_count":13,"unpatched_count":13,"last_vuln_date":27,"fetched_at":28,"discovery_status":29,"vulnerabilities":30,"developer":31,"crawl_stats":27,"alternatives":38,"analysis":148,"fingerprints":182},"wp-show-on-mobile","WP Show On Mobile","1.0.0","Dogan Ucar","https:\u002F\u002Fprofiles.wordpress.org\u002Fdogano\u002F","\u003Cp>This plugin shows content on mobile\u002Fdesktop user agents only. The ‘show_on_mobile’ and ‘show_on_desktop’ shortcodes are added with this plugin. The plugin shows a shortcode or a post\u002Fpage content on mobile\u002Fdesktop user agent.\u003C\u002Fp>\n\u003Cp>Features:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>shows or hides text\u002Fshortcode content only on mobile\u002Fdesktop user agents\u003C\u002Fli>\n\u003C\u002Ful>\n","Shows or hides content (text or shortcodes) on mobile or desktop user agents.",10,1665,0,"2016-08-05T19:40:00.000Z","4.8.28","3.6.0","",[19,20,21,22,23],"desktop","hide","mobile","show","show-on-mobile","http:\u002F\u002Fwww.dogan-ucar.de\u002Fwp-show-on-mobile","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwp-show-on-mobile.zip",85,null,"2026-04-16T10:56:18.058Z","no_bundle",[],{"slug":32,"display_name":7,"profile_url":8,"plugin_count":33,"total_installs":34,"avg_security_score":26,"avg_patch_time_days":35,"trust_score":36,"computed_at":37},"dogano",2,210,30,84,"2026-05-20T10:31:40.361Z",[39,65,88,107,128],{"slug":40,"name":41,"version":42,"author":43,"author_profile":44,"description":45,"short_description":46,"active_installs":47,"downloaded":48,"rating":49,"num_ratings":50,"last_updated":51,"tested_up_to":52,"requires_at_least":53,"requires_php":17,"tags":54,"homepage":60,"download_link":61,"security_score":62,"vuln_count":63,"unpatched_count":13,"last_vuln_date":64,"fetched_at":28},"onesignal-free-web-push-notifications","OneSignal – Web Push Notifications","3.8.1","OneSignal Push Notifications","https:\u002F\u002Fprofiles.wordpress.org\u002Fonesignal\u002F","\u003Cp>\u003Ca href=\"https:\u002F\u002Fonesignal.com\" rel=\"nofollow ugc\">OneSignal\u003C\u002Fa> is an easy way to increase user engagement. Use OneSignal to send visitors targeted push notifications so they keep coming back. It takes just a few minutes to install.\u003C\u002Fp>\n\u003Cp>As a WordPress VIP Gold Partner, OneSignal has been rigorously tested to handle even the highest volume use cases with reliability and ease of use.\u003C\u002Fp>\n\u003Cp>After setup, your visitors opt-in to receive push notifications when you publish a new post. Visitors receive these notifications even after they’ve left your website, thus driving re-engagement.\u003C\u002Fp>\n\u003Cp>You can configure notification delivery at preset intervals, create user segments, and customize the opt-in process for visitors.\u003C\u002Fp>\n\u003Cp>OneSignal’s free plan allows targeting up to 10,000 subscribers with push notifications. Contact support@onesignal.com if you have any questions. We’d love to hear from you!\u003C\u002Fp>\n\u003Ch4>Company\u003C\u002Fh4>\n\u003Cp>OneSignal is trusted by over 1.8M+ developers and marketing strategists. We power push notifications for everyone from early stage startups to Fortune 500 Companies, sending over 6 billion notifications per day. It is the most popular push notification plugin on WordPress with 100,000+ installations.\u003C\u002Fp>\n\u003Ch4>Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\n\u003Cp>\u003Cstrong>Supports Chrome\u003C\u002Fstrong> (Desktop & Android), \u003Cstrong>Safari\u003C\u002Fstrong> (Mac OS X), \u003Cstrong>Microsoft Edge\u003C\u002Fstrong> (Desktop & Android), \u003Cstrong>Opera\u003C\u002Fstrong> (Desktop & Android) and \u003Cstrong>Firefox\u003C\u002Fstrong> (Desktop & Android) on both HTTP and HTTPS sites.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>Automatic Notifications\u003C\u002Fstrong> – Send notifications to followers every time you publish a new post. Or set up a reminder that gets automatically sent to them if they haven’t visited for a few days.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>Targeting Segments\u003C\u002Fstrong> – Send notifications to specific visitors based on language, number of times they’ve visited your blog, or even set up your own user attributes that you can target.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>Opt-In Customization\u003C\u002Fstrong> – Choose when and how to ask your visitors to opt-in to browser notifications. Customize the prompt they first see.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>Real Time Analytics\u003C\u002Fstrong> – See your notifications being delivered in real time, and watch them as they convert into visitors.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>A\u002FB Testing\u003C\u002Fstrong> – Try out different messages to a smaller set of your visitors to figure out which messages are more effective and then send the more effective message to the rest of your visitors!\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Cstrong>Scheduled Notifications\u003C\u002Fstrong> – Schedule notifications to be delivered in the future, based on a user’s time zone, or even based on the same time of day they last visited your website.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n","Increase engagement and drive more repeat traffic to your WordPress site with push notifications. Now a WordPress VIP Gold Partner.",70000,5110787,86,361,"2026-04-07T23:49:00.000Z","6.9.4","3.8",[55,56,57,58,59],"chrome-push","desktop-notifications","mobile-notifications","push-notification","push-notifications","https:\u002F\u002Fonesignal.com\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fonesignal-free-web-push-notifications.3.8.1.zip",97,3,"2026-04-15 21:51:29",{"slug":66,"name":67,"version":68,"author":69,"author_profile":70,"description":71,"short_description":72,"active_installs":73,"downloaded":74,"rating":75,"num_ratings":76,"last_updated":77,"tested_up_to":78,"requires_at_least":79,"requires_php":17,"tags":80,"homepage":17,"download_link":86,"security_score":87,"vuln_count":13,"unpatched_count":13,"last_vuln_date":27,"fetched_at":28},"hide-admin-menu","Hide Admin Menu","1.1.2","Bhavin Thummar","https:\u002F\u002Fprofiles.wordpress.org\u002Fbhavinthummar\u002F","\u003Cp>This plugin gives the facility for hiding and showing the admin menu of the side and top bars.\u003C\u002Fp>\n\u003Cp>This plugin gives an easy way to hide admin menus by checking the checkbox of a particular menu in the form and then submitting the form so that checked menus hide from the admin.\u003C\u002Fp>\n\u003Cp>Admin also can hide menu according to the role of users.\u003C\u002Fp>\n\u003Cspan class=\"embed-youtube\" style=\"text-align:center; display: block;\">\u003Ciframe loading=\"lazy\" class=\"youtube-player\" width=\"560\" height=\"315\" src=\"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FLiXcE6aEvdI?version=3&rel=1&showsearch=0&showinfo=1&iv_load_policy=1&fs=1&hl=en-US&autohide=2&wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\">\u003C\u002Fiframe>\u003C\u002Fspan>\n","Using this plugin, we can hide the admin menu easily.",20000,125290,98,13,"2025-05-20T03:44:00.000Z","6.8.5","4.6",[81,82,83,84,85],"admin-menu-hide","admin-menu-plugin","admin-menu-show","menu-hide","user-role","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fhide-admin-menu.1.1.2.zip",100,{"slug":89,"name":90,"version":91,"author":92,"author_profile":93,"description":94,"short_description":95,"active_installs":73,"downloaded":96,"rating":97,"num_ratings":98,"last_updated":99,"tested_up_to":78,"requires_at_least":100,"requires_php":101,"tags":102,"homepage":17,"download_link":106,"security_score":87,"vuln_count":13,"unpatched_count":13,"last_vuln_date":27,"fetched_at":28},"whp-hide-posts","Hide Posts","2.1.0","MartinCV","https:\u002F\u002Fprofiles.wordpress.org\u002Fmartin7ba\u002F","\u003Cp>This plugin allows you to hide any posts on the home page, category page, search page, tags page, authors page, RSS Feed, REST API, Post Navigation, Native Recent Posts Widget, XML sitemaps, Yoast SEO sitemap, breadcrumbs and internal link suggestions.\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fdemo.tastewp.com\u002Fwhp-hide-posts\" title=\"Demo\" rel=\"nofollow ugc\">Try the Demo\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch4>Features:\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Hide posts on specific archives and pages (home, categories, search, tags, authors, date, blog page, etc.)\u003C\u002Fli>\n\u003Cli>Hide posts from RSS Feed and REST API\u003C\u002Fli>\n\u003Cli>Hide posts from XML sitemaps (WordPress core and Yoast SEO)\u003C\u002Fli>\n\u003Cli>Hide posts from Yoast SEO breadcrumbs and internal link suggestions\u003C\u002Fli>\n\u003Cli>Full Gutenberg Block Editor support with metabox in sidebar\u003C\u002Fli>\n\u003Cli>Works with Gutenberg Query Loop and Latest Posts blocks\u003C\u002Fli>\n\u003Cli>Custom Post Types support – enable hide functionality for any post type\u003C\u002Fli>\n\u003Cli>WooCommerce integration – hide products on store page, category pages, and REST API\u003C\u002Fli>\n\u003Cli>Bulk Edit and Quick Edit support for efficient management\u003C\u002Fli>\n\u003Cli>Custom database table for optimized performance\u003C\u002Fli>\n\u003Cli>Comprehensive caching for fast page loads\u003C\u002Fli>\n\u003C\u002Ful>\n","Allows you to hide any posts on the home page, category page, search page, tags page, authors page, RSS Feed, REST API, XML sitemaps, SEO integrations &hellip;",251255,94,22,"2025-11-24T00:11:00.000Z","5.0","7.3",[20,103,104,22,105],"hide-posts","hide-products","visibility","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwhp-hide-posts.2.1.0.zip",{"slug":108,"name":109,"version":110,"author":111,"author_profile":112,"description":113,"short_description":114,"active_installs":115,"downloaded":116,"rating":117,"num_ratings":118,"last_updated":119,"tested_up_to":120,"requires_at_least":121,"requires_php":17,"tags":122,"homepage":126,"download_link":127,"security_score":26,"vuln_count":13,"unpatched_count":13,"last_vuln_date":27,"fetched_at":28},"hide-featured-image","Hide Featured Image","1.3.1","shahpranaf","https:\u002F\u002Fprofiles.wordpress.org\u002Fshahpranaf\u002F","\u003Cp>There are instances when one wants to show featured image on single post and hide it on another post.\u003Cbr \u002F>\nThis plugin will allow you to show or hide featured image from single post page. It supports custom post types also.\u003C\u002Fp>\n\u003Cp>For any query or details please visit \u003Ca href=\"http:\u002F\u002Fshahpranav.com\u002F2015\u002F05\u002Fhide-featured-image-on-single-post\u002F\" rel=\"nofollow ugc\">Plugin Home\u003C\u002Fa>\u003C\u002Fp>\n","To Hide Featured Image on single post\u002Fpage.",10000,270616,72,81,"2018-05-28T18:19:00.000Z","4.9.29","3.0.1",[123,20,124,125,22],"featured","image","post","http:\u002F\u002Fshahpranav.com\u002F2015\u002F05\u002Fhide-featured-image-on-single-post\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fhide-featured-image.zip",{"slug":129,"name":130,"version":131,"author":132,"author_profile":133,"description":134,"short_description":135,"active_installs":115,"downloaded":136,"rating":75,"num_ratings":137,"last_updated":138,"tested_up_to":139,"requires_at_least":131,"requires_php":17,"tags":140,"homepage":146,"download_link":147,"security_score":26,"vuln_count":13,"unpatched_count":13,"last_vuln_date":27,"fetched_at":28},"shortcodes-to-show-or-hide-content","Show\u002FHide Content at Set Time","2.5","Dave Clements","https:\u002F\u002Fprofiles.wordpress.org\u002Fthewanderingbrit\u002F","\u003Cp>\u003Cstrong>Like this plugin?\u003C\u002Fstrong> Consider \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fsupport\u002Fview\u002Fplugin-reviews\u002Fshortcodes-to-show-or-hide-content\" title=\"Review Show\u002FHide Content at Set Time\" rel=\"ugc\">leaving a quick review\u003C\u002Fa> or writing about how you’ve used it on your site – \u003Ca href=\"https:\u002F\u002Fwww.theukedge.com\u002Fcontact\u002F?utm_source=wordpress.org&utm_medium=plugin&utm_campaign=contact\" title=\"Contact Dave\" rel=\"nofollow ugc\">send me a link\u003C\u002Fa> to that write up if you do.\u003C\u002Fp>\n\u003Cp>This plugin is maintained on \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Ftheukedge\u002Fshortcodes-to-show-or-hide-content\" rel=\"nofollow ugc\">GitHub\u003C\u002Fa>, so feel free to use the repository for reporting issues, submitting feature requests and submitting pull requests.\u003C\u002Fp>\n\u003Cp>This plugin provides shortcodes allowing you to display content or hide content at given dates and times. You can also combine the two to show some content at a given time, and then hide it at another time.\u003C\u002Fp>\n\u003Cp>There’s also a separate shortcode if you want to repeat a schedule for showing and hiding content – for example to only show information about a radio show while it’s on air.\u003C\u002Fp>\n\u003Ch4>Usage – single use\u003C\u002Fh4>\n\u003Cp>To show or hide content at one point in time, you can use the \u003Ccode>[time-restrict]\u003C\u002Fcode> shortcode. For example:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[time-restrict off=\"2015-01-01\"]Please enter our competition[\u002Ftime-restrict]\n[time-restrict on=\"2015-01-01\"]Sorry, this competition has closed[\u002Ftime-restrict]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>If you do not enter a time with the date, it will default to 00:00:00, so in the above example, the first message will show up until 2015-01-01 00:00:00 (i.e. until the first second of 2015) and the second message will show up from 2015-01-01 00:00:00 (i.e. from the first second of 2015)\u003C\u002Fp>\n\u003Cp>You can use any date or time string \u003Ca href=\"http:\u002F\u002Fwww.php.net\u002Fmanual\u002Fen\u002Fdatetime.formats.php\" title=\"PHP Date and Time strings\" rel=\"nofollow ugc\">supported by PHP\u003C\u002Fa>, such as:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[time-restrict off=\"September 10th, 2014\"]Will display until 09\u002F10\u002F2014[\u002Ftime-restrict]\n[time-restrict off=\"2014-09-10\"]Will display until 09\u002F10\u002F2014[\u002Ftime-restrict]\n[time-restrict off=\"10-Septmber 2014\"]Will display until 09\u002F10\u002F2014[\u002Ftime-restrict]\n[time-restrict on=\"2014\u002F09\u002F10 18:00:00\"]Will show after 09\u002F10\u002F2014 at 6pm[\u002Ftime-restrict]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>You can also combine starting and ending dates for the same piece of content. So if you want some content to appear between January 1st and January 10th, you could do the following:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[time-restrict on=\"2015-01-01\" off=\"2015-01-11\"]\nThis is a limited time offer\n[\u002Ftime-restrict]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch4>Usage – repeating schedule\u003C\u002Fh4>\n\u003Cp>To show and hide content on a recurring schedule, you can use the \u003Ccode>[time-restrict-repeat]\u003C\u002Fcode> shortcode. Your options are a daily, weekly, monthly or annual schedule.\u003C\u002Fp>\n\u003Cp>A daily schedule takes the following form:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[time-restrict-repeat type=\"daily\" ontime=\"09:00:00\" offtime=\"17:00:00\"]\nWorking 9 to 5\n[\u002Ftime-restrict-repeat]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Note that you can also cross over midnight, so to only show something from 10PM to 5AM, you can use:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[time-restrict-repeat type=\"daily\" ontime=\"22:00:00\" offtime=\"05:00:00\"]\nFor the night owls\n[\u002Ftime-restrict-repeat]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>A weekly schedule takes the following form:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[time-restrict-repeat type=\"weekly\" onday=\"Monday\" offday=\"Friday\"]\nThe work week\n[\u002Ftime-restrict-repeat]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>You can also specify start and stop times if you want (it will assume starting at 00:00:00 and ending at 23:59:59 if these are left out, like above):\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[time-restrict-repeat type=\"weekly\" onday=\"Friday\" offday=\"Monday\" ontime=\"17:00:00\" offtime=\"08:00:00\"]\nIt's the weekend baby!\n[\u002Ftime-restrict-repeat]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>A monthly schedule takes the following form:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[time-restrict-repeat type=\"monthly\" ondate=\"01\" offdate=\"07\"]\nThe first week of the month\n[\u002Ftime-restrict-repeat]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>You can both cross over the end of the month, and apply times to your start and end dates, e.g.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[time-restrict-repeat type=\"monthly\" ondate=\"25\" offdate=\"05\" ontime=\"17:00:00\" offtime=\"08:00:00\"]\nWe are exceptionally busy at the end of each billing cycle. Please bear with us!\n[\u002Ftime-restrict-repeat]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>And lastly, an annual schedule takes the following form:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[time-restrict-repeat type=\"annually\" onmonth=\"June\" offmonth=\"August\" ondate=\"01\" offdate=\"31\"]\nI'm currently in the mountains enjoying the summer!\n[\u002Ftime-restrict-repeat]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>You can cross over the end of the month or even the end of the year, and apply times to your start and end dates, e.g.\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[time-restrict-repeat type=\"annually\" onmonth=\"December\" ondate=\"24\" offmonth=\"January\" offdate=\"05\" ontime=\"17:00:00\" offtime=\"08:00:00\"]\nOur employees are currently enjoying time with their families for Christmas. We'll be back after the New Year.\n[\u002Ftime-restrict-repeat]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>If you’re feeling creative, you can even nest shortcodes to account for multiple concurrent conditions. Since you cannot nest shortcodes with the same name, you need to add -2 or -3 to time-restrict-repeat in your shortcode (e.g. \u003Ccode>[time-restrict-repeat-2]\u003C\u002Fcode>).\u003C\u002Fp>\n\u003Cp>For example, showing a message during business hours only on Monday to Friday:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[time-restrict-repeat type=\"daily\" ontime=\"08:00:00\" offtime=\"17:00:00\"]\n[time-restrict-repeat-2 type=\"weekly\" onday=\"Monday\" offday=\"Friday\"]\nOur store is currently open\n[\u002Ftime-restrict-repeat-2]\n[\u002Ftime-restrict-repeat]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>You can also define a message which should appear if your content is not showing by using the \u003Ccode>else\u003C\u002Fcode> attribute @since 2.5. For example, you could invite people to visit your store during opening hours and ask them come back soon otherwise, like this:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>[time-restrict-repeat type=\"daily\" ontime=\"08:00:00\" offtime=\"17:00:00\" else=\"We're currently closed. Come back and see us when we're open.\"]\n[time-restrict-repeat-2 type=\"weekly\" onday=\"Monday\" offday=\"Friday\" else=\"We're currently closed. Come back and see us when we're open.\"]\nOur store is currently open\n[\u002Ftime-restrict-repeat-2]\n[\u002Ftime-restrict-repeat]\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Note that with nested shortcodes, you need to add the \u003Ccode>else\u003C\u002Fcode> attribute to each shortcode.\u003C\u002Fp>\n\u003Ch4>Things to bear in mind\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>The time used by the plugin is your site’s local time (check in Settings > General).\u003C\u002Fli>\n\u003Cli>The \u003Ccode>else\u003C\u002Fcode> attribute \u003Cem>does\u003C\u002Fem> accept HTML, but is restricted by \u003Ca href=\"https:\u002F\u002Fcodex.wordpress.org\u002FShortcode_API#HTML\" rel=\"nofollow ugc\">WordPress’ limitation on HTML inside shortcode attributes\u003C\u002Fa>.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>I also run \u003Ca href=\"http:\u002F\u002Fwww.doitwithwp.com\u002F?utm_source=wordpress.org&utm_medium=plugin&utm_campaign=my-other-sites\" title=\"WordPress Tutorials\" rel=\"nofollow ugc\">Do It With WordPress\u003C\u002Fa>, which has an array of tutorials for managing, modifying and maintaining your WordPress sites, as well as \u003Ca href=\"https:\u002F\u002Fwww.thewpbutler.com\u002F?utm_source=wordpress.org&utm_medium=plugin&utm_campaign=wordpress-services\" title=\"WordPress Maintenance Services\" rel=\"nofollow ugc\">The WP Butler\u003C\u002Fa>, a service for keeping your site maintained, backed up, updated and secure.\u003C\u002Fp>\n","Shortcodes to wrap around text, which specify at what date or time that content should appear or disappear, either once, or on a recurring basis.",40204,33,"2019-10-01T15:45:00.000Z","5.2.24",[141,142,143,144,145],"active","date","expire","show-hide","time","https:\u002F\u002Fgithub.com\u002Ftheukedge\u002Fshortcodes-to-show-or-hide-content","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fshortcodes-to-show-or-hide-content.2.5.zip",{"attackSurface":149,"codeSignals":163,"taintFlows":171,"riskAssessment":172,"analyzedAt":181},{"hooks":150,"ajaxHandlers":151,"restRoutes":152,"shortcodes":153,"cronEvents":162,"entryPointCount":33,"unprotectedCount":13},[],[],[],[154,159],{"tag":155,"callback":156,"file":157,"line":158},"show_on_mobile","show_content_on_mobile","wp-show-on-mobile.php",32,{"tag":160,"callback":161,"file":157,"line":137},"show_on_desktop","show_content_on_desktop",[],{"dangerousFunctions":164,"sqlUsage":165,"outputEscaping":167,"fileOperations":169,"externalRequests":13,"nonceChecks":13,"capabilityChecks":13,"bundledLibraries":170},[],{"prepared":13,"raw":13,"locations":166},[],{"escaped":13,"rawEcho":13,"locations":168},[],1,[],[],{"summary":173,"deductions":174},"The wp-show-on-mobile v1.0.0 plugin exhibits a generally positive security posture, adhering to several good coding practices. The static analysis indicates no dangerous functions, 100% of SQL queries use prepared statements, and all identified outputs are properly escaped. Notably, there are no external HTTP requests and no known vulnerabilities in its history.  The limited attack surface, with only two shortcodes and no AJAX or REST API endpoints without authentication checks, further contributes to its security.\n\nHowever, there are areas that warrant attention. The complete absence of nonce checks and capability checks on the identified entry points (shortcodes) represents a significant concern. While the attack surface is small, these checks are crucial for preventing unauthorized access or manipulation if the shortcodes are invoked in unexpected ways or by malicious actors. The single file operation also presents a potential, albeit unquantified, risk.  The lack of any taint analysis results is also unusual and might indicate either limited analysis depth or that the plugin's functionality doesn't lend itself to such analysis; however, without further information, this is a neutral observation.\n\nIn conclusion, the plugin demonstrates a strong foundation in secure coding for SQL and output handling. The primary weakness lies in the lack of authorization mechanisms on its shortcode entry points.  Addressing this would significantly bolster its security. The absence of historical vulnerabilities is a positive sign, but it should not lead to complacency, especially given the identified lack of access controls.",[175,177,179],{"reason":176,"points":11},"Missing nonce checks on shortcodes",{"reason":178,"points":11},"Missing capability checks on shortcodes",{"reason":180,"points":63},"Presence of file operations without context","2026-03-16T23:30:19.840Z",{"wat":183,"direct":188},{"assetPaths":184,"generatorPatterns":185,"scriptPaths":186,"versionParams":187},[],[],[],[],{"cssClasses":189,"htmlComments":190,"htmlAttributes":191,"restEndpoints":192,"jsGlobals":193,"shortcodeOutput":194},[],[],[],[],[],[195,196,197,198],"[show_on_mobile]","[\u002Fshow_on_mobile]","[show_on_desktop]","[\u002Fshow_on_desktop]",{"error":200,"url":201,"statusCode":202,"statusMessage":203,"message":203},true,"http:\u002F\u002Flocalhost\u002Fapi\u002Fplugins\u002Fwp-show-on-mobile\u002Fbundle",404,"no bundle for this plugin yet",{"slug":4,"current_version":6,"total_versions":13,"versions":205},[]]