[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$f4IR9iiQsw4EI37cgmNrloUZmNbAHQvcoNcOWMJFpon4":3,"$fjMyGl6umEfTix_YE7EVvSIorVhgnz2r3Tms1OsLN6Ho":182,"$fC0Lf0nbfxqdjattRxDal-sF4aaiabd-SAwQpJFSkuzk":187},{"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":17,"download_link":23,"security_score":24,"vuln_count":13,"unpatched_count":13,"last_vuln_date":25,"fetched_at":26,"discovery_status":27,"vulnerabilities":28,"developer":29,"crawl_stats":25,"alternatives":34,"analysis":131,"fingerprints":166},"auto-table-scroll","Auto table scroll","0.0.1","elm1","https:\u002F\u002Fprofiles.wordpress.org\u002Felm1\u002F","\u003Cp>Adds horizontal scroll to big tables in content if they don’t fit, useful on mobile viewport.\u003C\u002Fp>\n","Adds horizontal scroll to big tables in content if they don't fit, useful on mobile viewport.",10,1182,0,"2020-05-27T03:38:00.000Z","5.4.19","4.8","",[19,20,21,22],"auto","mobile","scroll","tables","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fauto-table-scroll.0.0.1.zip",85,null,"2026-04-16T10:56:18.058Z","no_bundle",[],{"slug":7,"display_name":7,"profile_url":8,"plugin_count":30,"total_installs":11,"avg_security_score":24,"avg_patch_time_days":31,"trust_score":32,"computed_at":33},1,30,84,"2026-05-20T10:29:37.287Z",[35,56,76,96,112],{"slug":36,"name":37,"version":38,"author":39,"author_profile":40,"description":41,"short_description":42,"active_installs":43,"downloaded":44,"rating":45,"num_ratings":46,"last_updated":47,"tested_up_to":48,"requires_at_least":49,"requires_php":17,"tags":50,"homepage":54,"download_link":55,"security_score":24,"vuln_count":13,"unpatched_count":13,"last_vuln_date":25,"fetched_at":26},"automatic-responsive-tables","Automatic Responsive Tables","1.3","Andrew Rockwell","https:\u002F\u002Fprofiles.wordpress.org\u002Frockwell15\u002F","\u003Cp>This plugin automatically makes all the tables on your site responsive.\u003C\u002Fp>\n\u003Cp>Live Example:\u003Cbr \u002F>\nhttp:\u002F\u002Fplugins.rockwellgrowth.com\u002Fautomatic-responsive-tables\u002F\u003C\u002Fp>\n\u003Cp>\u003Cstrong>NEW!\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>exclude option\u003C\u002Fli>\n\u003Cli>applies to dynamically loaded tables now\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Features:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Fixed bug with links in the table\u003C\u002Fli>\n\u003Cli>Fixed bug for tables with no table headers\u003C\u002Fli>\n\u003Cli>Specify only certain tables you’d like this plugin to affect.\u003C\u002Fli>\n\u003Cli>Specify the breakpoint for responsiveness\u003C\u002Fli>\n\u003Cli>Optional styling\u003C\u002Fli>\n\u003Cli>Compatible across all major browsers\u003C\u002Fli>\n\u003Cli>Backend style editor w\u002F preview panel\u003C\u002Fli>\n\u003Cli>Supports IE5+ !!!\u003C\u002Fli>\n\u003C\u002Ful>\n","Leave your tables as they are. Add this plugin, and they're all responsive.",1000,42520,90,8,"2019-08-06T14:17:00.000Z","5.2.24","3.5",[51,20,52,53,22],"automatic","responsive","table","http:\u002F\u002Fplugins.rockwellgrowth.com\u002Fresponsive-tables","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fautomatic-responsive-tables.1.3.zip",{"slug":57,"name":58,"version":59,"author":60,"author_profile":61,"description":62,"short_description":63,"active_installs":64,"downloaded":65,"rating":13,"num_ratings":13,"last_updated":66,"tested_up_to":67,"requires_at_least":68,"requires_php":69,"tags":70,"homepage":17,"download_link":75,"security_score":64,"vuln_count":13,"unpatched_count":13,"last_vuln_date":25,"fetched_at":26},"responsive-horizontal-table-scroll","Responsive Horizontal Table Scroll","1.0","Peyman Farahani","https:\u002F\u002Fprofiles.wordpress.org\u002Fpeymanfarahani\u002F","\u003Cp>This plugin wraps all \u003Ccode>\u003Ctable>\u003C\u002Fcode> elements inside a responsive, scrollable container and shows a small arrow hint on mobile to indicate horizontal scrolling.\u003C\u002Fp>\n\u003Cp>No settings, no shortcodes — just activate and enjoy mobile-friendly tables across your site.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Features:\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Works with all themes and page builders (Elementor, Gutenberg, etc.)\u003C\u002Fli>\n\u003Cli>Adds horizontal scroll automatically to all tables\u003C\u002Fli>\n\u003Cli>Animated arrow hint (\u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> or \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">←\u003C\u002Fspan> based on RTL\u002FLTR)\u003C\u002Fli>\n\u003Cli>No jQuery required\u003C\u002Fli>\n\u003Cli>Super lightweight\u003C\u002Fli>\n\u003C\u002Ful>\n","Make your WordPress tables mobile-friendly with automatic horizontal scrolling and an animated arrow indicator.",100,576,"2025-09-07T10:49:00.000Z","6.8.5","5.0","7.0",[4,71,72,73,74],"horizontal-scroll","mobile-table-fix","responsive-table","table-overflow","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fresponsive-horizontal-table-scroll.1.0.zip",{"slug":77,"name":78,"version":79,"author":80,"author_profile":81,"description":82,"short_description":83,"active_installs":84,"downloaded":85,"rating":86,"num_ratings":87,"last_updated":88,"tested_up_to":89,"requires_at_least":90,"requires_php":91,"tags":92,"homepage":94,"download_link":95,"security_score":24,"vuln_count":13,"unpatched_count":13,"last_vuln_date":25,"fetched_at":26},"wp-responsive-table","WP Responsive Table","1.2.6","Processby","https:\u002F\u002Fprofiles.wordpress.org\u002Fprocessby\u002F","\u003Cp>This plugin makes HTML tables horizontally scrollable on a small screen. This makes it horizontally scrollable in its own container, which is fits the screen.\u003C\u002Fp>\n\u003Ch4>Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Works out of the box, additional settings is not required;\u003C\u002Fli>\n\u003Cli>This plugin does not use shortcodes. It works with regular HTML table in Classic Editor, or in Gutenberg;\u003C\u002Fli>\n\u003Cli>Customisable tables styles;\u003C\u002Fli>\n\u003Cli>Table column sort – \u003Ca href=\"https:\u002F\u002Fprocessby.com\u002Fresponsive-tables-wordpress\u002F#wprt-demo\" rel=\"nofollow ugc\">demo\u003C\u002Fa>;\u003C\u002Fli>\n\u003Cli>Not increasing table height;\u003C\u002Fli>\n\u003Cli>Totally Free.\u003C\u002Fli>\n\u003C\u002Ful>\n","Makes HTML tables horizontally scrollable on a small screen and customizes tables styles.",7000,54525,96,13,"2021-01-16T01:04:00.000Z","5.6.17","4.0","5.6",[20,52,93,53,22],"responsive-tables","https:\u002F\u002Fprocessby.com\u002Fresponsive-tables-wordpress\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwp-responsive-table.zip",{"slug":97,"name":98,"version":99,"author":100,"author_profile":101,"description":102,"short_description":103,"active_installs":104,"downloaded":105,"rating":64,"num_ratings":106,"last_updated":107,"tested_up_to":108,"requires_at_least":49,"requires_php":109,"tags":110,"homepage":17,"download_link":111,"security_score":64,"vuln_count":13,"unpatched_count":13,"last_vuln_date":25,"fetched_at":26},"make-tables-responsive","Make Tables Responsive","1.8.0","Nikolay Nikolov","https:\u002F\u002Fprofiles.wordpress.org\u002Fnnikolov\u002F","\u003Cp>Automatically makes the HTML tables in your WordPress posts, pages, and widgets responsive (mobile-friendly). Devices with a small screen will see the tables in a new layout with two columns. In the first column will be the data from the first row (the column names), and in the second column will be the data from the other rows.\u003C\u002Fp>\n\u003Ch4>WordPress Plugin Demo\u003C\u002Fh4>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fnikolaydev.com\u002Fdemo-of-make-tables-responsive\u002F\" rel=\"nofollow ugc\">https:\u002F\u002Fnikolaydev.com\u002Fdemo-of-make-tables-responsive\u002F\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch4>HTML and CSS Demo for Non-WordPress Sites\u003C\u002Fh4>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fnikolaydev.com\u002Fmake-tables-responsive-html-and-css-example\u002F\" rel=\"nofollow ugc\">https:\u002F\u002Fnikolaydev.com\u002Fmake-tables-responsive-html-and-css-example\u002F\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch4>Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Affect post\u002Fpage content, excerpts, category descriptions, and text\u002FHTML widgets\u003C\u002Fli>\n\u003Cli>Choose affected screen size\u003C\u002Fli>\n\u003Cli>Choose the cell background and border color for even and odd rows\u003C\u002Fli>\n\u003Cli>Disable for tables by HTML class or ID\u003C\u002Fli>\n\u003Cli>Disable or enable only for posts and pages by ID\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Pros 🙂\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Fully automatic\u003C\u002Fli>\n\u003Cli>Does not change the actual post\u002Fpage content in the database\u003C\u002Fli>\n\u003Cli>Easily reverse changes by deactivating the plugin\u003C\u002Fli>\n\u003Cli>No jQuery or JavaScript on the front-end\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Cons 🙁\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>The first row must contain the column names\u003C\u002Fli>\n\u003Cli>Skips tables with merged cells\u003C\u002Fli>\n\u003Cli>Skips posts\u002Fpages with tables inside tables\u003C\u002Fli>\n\u003Cli>Skips multi-row tables when only some columns use “th” tags\u003C\u002Fli>\n\u003Cli>In multi-row tables, HTML code is stripped from the cells with the column names, when displayed in the responsive version (as the left column)\u003C\u002Fli>\n\u003C\u002Ful>\n","Automatically makes the HTML tables in your posts and pages responsive (mobile-friendly).",6000,62958,34,"2025-12-04T15:25:00.000Z","6.9.4","5.3.6",[20,52,22],"https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fmake-tables-responsive.1.8.0.zip",{"slug":113,"name":114,"version":115,"author":116,"author_profile":117,"description":118,"short_description":119,"active_installs":120,"downloaded":121,"rating":45,"num_ratings":122,"last_updated":123,"tested_up_to":124,"requires_at_least":90,"requires_php":17,"tags":125,"homepage":17,"download_link":129,"security_score":130,"vuln_count":13,"unpatched_count":13,"last_vuln_date":25,"fetched_at":26},"wp247-body-classes","WP247 Body Classes","2.2.0","wescleveland","https:\u002F\u002Fprofiles.wordpress.org\u002Fwescleveland\u002F","\u003Cp>Add unique classes to the body tag for easy styling based on post attributes (post type, slug, and ID) and various WordPress “is” functions:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>wp_is_mobile()\u003C\u002Fli>\n\u003Cli>is_home()\u003C\u002Fli>\n\u003Cli>is_front_page()\u003C\u002Fli>\n\u003Cli>is_blog()\u003C\u002Fli>\n\u003Cli>is_admin()\u003C\u002Fli>\n\u003Cli>is_admin_bar_showing()\u003C\u002Fli>\n\u003Cli>is_404()\u003C\u002Fli>\n\u003Cli>is_super_admin()\u003C\u002Fli>\n\u003Cli>is_user_logged_in()\u003C\u002Fli>\n\u003Cli>is_search()\u003C\u002Fli>\n\u003Cli>is_archive()\u003C\u002Fli>\n\u003Cli>is_author()\u003C\u002Fli>\n\u003Cli>is_category()\u003C\u002Fli>\n\u003Cli>is_tag()\u003C\u002Fli>\n\u003Cli>is_tax()\u003C\u002Fli>\n\u003Cli>is_date()\u003C\u002Fli>\n\u003Cli>is_year()\u003C\u002Fli>\n\u003Cli>is_month()\u003C\u002Fli>\n\u003Cli>is_day()\u003C\u002Fli>\n\u003Cli>is_time()\u003C\u002Fli>\n\u003Cli>is_single()\u003C\u002Fli>\n\u003Cli>is_sticky()\u003C\u002Fli>\n\u003Cli>$post->post_type\u003C\u002Fli>\n\u003Cli>$post->name\u003C\u002Fli>\n\u003Cli>$post->ID\u003C\u002Fli>\n\u003Cli>wp_get_post_categories() (Page\u002FPost Categories)\u003C\u002Fli>\n\u003Cli>wp_get_post_tags()       (Page\u002FPost Tags)\u003C\u002Fli>\n\u003Cli>$user->nicename\u003C\u002Fli>\n\u003Cli>$user->id\u003C\u002Fli>\n\u003Cli>$user->roles\u003C\u002Fli>\n\u003Cli>$user->allcaps\u003C\u002Fli>\n\u003Cli>$archive->slug (e.g. Category slug, Tag slug, etc.)\u003C\u002Fli>\n\u003Cli>$archive->id   (e.g. Category id, Tag id, etc.)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Add post specific classes to the body tag in the post editor. Use any class name you want to uniquely style an individual post or a set of posts.\u003C\u002Fp>\n\u003Cp>Add classes based on user scrolling through the page. You can check things like:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>is-scroll-top        (at the top of the page – synonym for is-not-scroll)\u003C\u002Fli>\n\u003Cli>is-not-scroll-top    (not at the top of the page – synonym for is-scroll)\u003C\u002Fli>\n\u003Cli>is-scroll            (not at the top of the page – synonym for is-not-scroll-top)\u003C\u002Fli>\n\u003Cli>is-not-scroll        (at the top of the page – synonym for is-scroll-top)\u003C\u002Fli>\n\u003Cli>is-scroll-top-px     (has not reached the scroll start value for scroll measurement by pixels)\u003C\u002Fli>\n\u003Cli>is-scroll-top-vh     (has not reached the scroll start value for scroll measurement by viewport height)\u003C\u002Fli>\n\u003Cli>is-scroll-top-dh     (has not reached the scroll start value for scroll measurement by document height)\u003C\u002Fli>\n\u003Cli>is-scroll-10-px      (scrolled down 10 pixels)\u003C\u002Fli>\n\u003Cli>is-scroll-8-vh       (scrolled down 8% of the viewport height)\u003C\u002Fli>\n\u003Cli>is-scroll-5-dh       (scrolled down 5% of the document height)\u003C\u002Fli>\n\u003Cli>is-scroll-mid-px     (has reached the scroll start value but not the scroll limit for scroll measurement by pixels)\u003C\u002Fli>\n\u003Cli>is-scroll-mid-vh     (has reached the scroll start value but not the scroll limit for scroll measurement by viewport height)\u003C\u002Fli>\n\u003Cli>is-scroll-mid-vh     (has reached the scroll start value but not the scroll limit for scroll measurement by document height)\u003C\u002Fli>\n\u003Cli>is-scroll-max-px     (has reached the scroll limit for scroll measurement by pixels)\u003C\u002Fli>\n\u003Cli>is-scroll-max-vh     (has reached the scroll limit for scroll measurement by percent of viewport height)\u003C\u002Fli>\n\u003Cli>is-scroll-max-dh     (has reached the scroll limit for scroll measurement by percent of document height)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Add classes based on the results from mobiledetect.net’s \u003Cstrong>Mobile_Detect\u003C\u002Fstrong> script. This script parses the value passed by the browser in the HTTP_USER_AGENT string. Consequently, mobile detection is more of an art than a science and, unfortunately, is not perfect. You can check things like:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>is-mobile\u003C\u002Fli>\n\u003Cli>is-tablet\u003C\u002Fli>\n\u003Cli>is-phone\u003C\u002Fli>\n\u003Cli>Mobile Operating System\u003C\u002Fli>\n\u003Cli>Mobile Browser\u003C\u002Fli>\n\u003Cli>Type of tablet\u003C\u002Fli>\n\u003Cli>Type of phone\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>This plugin adds classes to the html body tag indicating:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\n\u003Cp>whether or not the requesting device is a mobile device (.is-mobile or .is-not-mobile)\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>the type of post being viewed (.is-? where ? is the post type (page, post, whetever special post types are defined) ).\u003Cbr \u002F>\n E.g. .is-page or .is-post\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>the slug of the post being viewed (.is-?-! where ? is the post type and ! is the post slug).\u003Cbr \u002F>\n E.g. a post with slug “hello-world’ would have class .is-post-hello-world\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>the ID of the post being viewed (.is-?-# where ? is the post type and # is the post ID).\u003Cbr \u002F>\n E.g. a post with ID “1” would have class .is-page-1\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>whether or not the requested page shows archived results (.is-archive or .is-not-archive)\u003C\u002Fp>\n\u003Cp>If the page being displayed is an archive\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\n\u003Cp>the type of archive being viewed (.is-? where ? represents the type of archive (author, category, date, tag) )\u003Cbr \u002F>\nE.g. .is-author\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>the slug of the archive being viewed (.is-?-! where ? is the archive type and ! is the archive slug)\u003Cbr \u002F>\nE.g. a category with slug “uncategorized’ would have class .is-category-uncategorized\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>the ID of the archive being viewed (.is-?-# where ? is the archive type and # is the archive ID)\u003Cbr \u002F>\nE.g. a category with ID “1” would have class .is-category-1\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>How far down the page the viewer has scrolled in pixels or as a percentage of viewport height or as a percentage of document height\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Post specific class(es) that are set in the post editor\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Use these classes in your styling to provide a better browsing experience for your viewers.\u003C\u002Fp>\n\u003Ch4>Custom Body Classes\u003C\u002Fh4>\n\u003Cp>Create your own Custom Body Classes by adding your PHP code in the “Custom Body Classes” section.\u003C\u002Fp>\n\u003Cp>Here’s an example. Not sure why we would want to do it, but suppose we want to do some custom styling when the page is being displayed to someone that can manage WordPress options. We might enter something like:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>if (current_user_can('manage_options')) $classes[] = 'user-can-manage-options';\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Then we can use the \u003Cstrong>body.user-can-manage-options\u003C\u002Fstrong> qualifier in our CSS styling.\u003C\u002Fp>\n\u003Ch4>Example\u003C\u002Fh4>\n\u003Cp>Suppose you have a large h1 top margin that you want to eliminate on mobile devices to avoid a lot of white space. After activating the wp247-body-classes plugin and indicating that the .is-mobile class is desired, all you need to do is add this line to your CSS:\u003C\u002Fp>\n\u003Cp>body.is-mobile h1 {\u003Cbr \u002F>\n    margin-top: 0;\u003Cbr \u002F>\n}\u003C\u002Fp>\n\u003Cp>Suppose you have a sticky header but want to shrink it by dynamically reducing the top and bottom padding from 25px to 5px as the viewer scrolls down the page based on 20 pixel scroll increments up to 80 pixels of scrolling:\u003C\u002Fp>\n\u003Cp>Set WP247 Body Classes Scroll setting to “Scroll by Pixel” with a 10 pixel increment and an 80 pixel limit and then add the following to your CSS:\u003C\u002Fp>\n\u003Cp>body.is-scroll-20-px header {\u003Cbr \u002F>\n    padding-top: 20px;\u003Cbr \u002F>\n    padding-bottom: 20px;\u003Cbr \u002F>\n}\u003Cbr \u002F>\nbody.is-scroll-40-px header {\u003Cbr \u002F>\n    padding-top: 15px;\u003Cbr \u002F>\n    padding-bottom: 15px;\u003Cbr \u002F>\n}\u003Cbr \u002F>\nbody.is-scroll-60-px header {\u003Cbr \u002F>\n    padding-top: 10px;\u003Cbr \u002F>\n    padding-bottom: 10px;\u003Cbr \u002F>\n}\u003Cbr \u002F>\nbody.is-scroll-max-px header {\u003Cbr \u002F>\n    padding-top: 5px;\u003Cbr \u002F>\n    padding-bottom: 5px;\u003Cbr \u002F>\n}\u003C\u002Fp>\n","Add unique classes to the body tag for easy styling based on various attributes (archive, user, post, mobile, scrolling) and WordPress \"is\"  &hellip;",200,7624,6,"2024-05-24T16:06:00.000Z","6.5.8",[20,126,21,127,128],"post-type","user-capabilities","user-roles","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwp247-body-classes.2.2.0.zip",92,{"attackSurface":132,"codeSignals":149,"taintFlows":156,"riskAssessment":157,"analyzedAt":165},{"hooks":133,"ajaxHandlers":145,"restRoutes":146,"shortcodes":147,"cronEvents":148,"entryPointCount":13,"unprotectedCount":13},[134,141],{"type":135,"name":136,"callback":137,"priority":138,"file":139,"line":140},"action","wp_head","elm_adds_ats_css",109,"auto_scroll_tables.php",21,{"type":142,"name":143,"callback":144,"file":139,"line":31},"filter","the_content","elm_enables_ats",[],[],[],[],{"dangerousFunctions":150,"sqlUsage":151,"outputEscaping":153,"fileOperations":13,"externalRequests":13,"nonceChecks":13,"capabilityChecks":13,"bundledLibraries":155},[],{"prepared":13,"raw":13,"locations":152},[],{"escaped":13,"rawEcho":13,"locations":154},[],[],[],{"summary":158,"deductions":159},"The static analysis of \"auto-table-scroll\" v0.0.1 reveals a strong adherence to security best practices within its code. There are no identified dangerous functions, all SQL queries utilize prepared statements, and output escaping is consistently applied. The absence of file operations and external HTTP requests further minimizes the attack surface. Crucially, the plugin has no recorded vulnerability history, including no known CVEs. This indicates a well-developed and secure plugin in terms of its current implementation and past security record.\n\nHowever, the analysis does highlight a complete lack of protective mechanisms for any potential entry points. With zero AJAX handlers, REST API routes, shortcodes, or cron events, the plugin presents no attack surface. While this is an absence of risk, it also means there are no checks for nonces, capabilities, or authentication. This is a potential concern if the plugin were to evolve and introduce new functionalities that rely on these mechanisms without implementing them. The current version is likely secure due to its simplicity, but future development would require careful consideration of these security controls.",[160,163],{"reason":161,"points":162},"No Nonce Checks",5,{"reason":164,"points":162},"No Capability Checks","2026-03-17T01:41:55.096Z",{"wat":167,"direct":173},{"assetPaths":168,"generatorPatterns":169,"scriptPaths":170,"versionParams":171},[],[],[],[172],"auto-table-scroll\u002Fstyle.css?ver=0.0.1",{"cssClasses":174,"htmlComments":176,"htmlAttributes":177,"restEndpoints":179,"jsGlobals":180,"shortcodeOutput":181},[175],"elm-ats-table",[],[178],"data-elm-ats",[],[],[],{"error":183,"url":184,"statusCode":185,"statusMessage":186,"message":186},true,"http:\u002F\u002Flocalhost\u002Fapi\u002Fplugins\u002Fauto-table-scroll\u002Fbundle",404,"no bundle for this plugin yet",{"slug":4,"current_version":6,"total_versions":30,"versions":188},[189],{"version":6,"download_url":23,"svn_tag_url":190,"released_at":25,"has_diff":191,"diff_files_changed":192,"diff_lines":25,"trac_diff_url":25,"vulnerabilities":193,"is_current":183},"https:\u002F\u002Fplugins.svn.wordpress.org\u002Fauto-table-scroll\u002Ftags\u002F0.0.1\u002F",false,[],[]]