[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fP2CSQwClswwsc-_r34I1cn7Q9q65wd_Vm7dCfPTBOaI":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":24,"download_link":25,"security_score":26,"vuln_count":27,"unpatched_count":28,"last_vuln_date":29,"fetched_at":30,"vulnerabilities":31,"developer":70,"crawl_stats":37,"alternatives":77,"analysis":184,"fingerprints":467},"pagination","Pagination by BestWebSoft – Customizable WordPress Content Splitter and Navigation Plugin","1.2.7","bestwebsoft","https:\u002F\u002Fprofiles.wordpress.org\u002Fbestwebsoft\u002F","\u003Cp>A lightweight and powerful pagination plugin for WordPress that adds fully customizable pagination to your posts, pages, blog, search results, archive, category, tags, and author pages. Choose from numeric, “Load More”, or infinite scroll styles, and customize their appearance and behavior.\u003C\u002Fp>\n\u003Cp>Perfect for WordPress users who want better content organization, enhanced SEO, and a smoother user journey.\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fbestwebsoft.com\u002Fdemo-pagination-plugin\u002F?ref=readme\" rel=\"nofollow ugc\">View Demo\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>\u003Cspan class=\"embed-youtube\" style=\"text-align:center; display: block;\">\u003Ciframe loading=\"lazy\" class=\"youtube-player\" width=\"750\" height=\"422\" src=\"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FTwAd3DWLGr8?version=3&rel=1&showsearch=0&showinfo=1&iv_load_policy=1&fs=1&hl=en-US&autohide=2&wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\">\u003C\u002Fiframe>\u003C\u002Fspan>\u003C\u002Fp>\n\u003Ch4>Free Features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Automatically add pagination to:\n\u003Cul>\n\u003Cli>Home\u003C\u002Fli>\n\u003Cli>Blog\u003C\u002Fli>\n\u003Cli>Archive\u003C\u002Fli>\n\u003Cli>Search results\u003C\u002Fli>\n\u003Cli>Paginated posts\u002Fpages\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Seamless integration with:\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fbestwebsoft.com\u002Fproducts\u002Fwordpress\u002Fplugins\u002Fgallery\u002F?k=8a6c514916efe4264d0732b86b82487f\" rel=\"nofollow ugc\">Gallery\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fbestwebsoft.com\u002Fproducts\u002Fwordpress\u002Fplugins\u002Fportfolio\u002F?k=982e34e0a05371dc2dcca2a5fc535c1a\" rel=\"nofollow ugc\">Portfolio\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Insert pagination via function into:\n\u003Cul>\n\u003Cli>Comments PHP template\u003C\u002Fli>\n\u003Cli>Theme or plugin PHP files\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Flexible positioning:\n\u003Cul>\n\u003Cli>Above content\u003C\u002Fli>\n\u003Cli>Below content\u003C\u002Fli>\n\u003Cli>Both above and below\u003C\u002Fli>\n\u003Cli>Manual placement via function\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Customize Next\u002FPrevious arrows and add scroll to top\u003C\u002Fli>\n\u003Cli>Display “Page X of Y” indicator\u003C\u002Fli>\n\u003Cli>Choose pagination layout:\n\u003Cul>\n\u003Cli>Full numeric (1,2,3,4,5,6)\u003C\u002Fli>\n\u003Cli>Short numeric (1,2…5,6)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Selectively hide pagination for:\n\u003Cul>\n\u003Cli>Default themes\u003C\u002Fli>\n\u003Cli>Paginated posts or pages\u003C\u002Fli>\n\u003Cli>Comments\u003C\u002Fli>\n\u003Cli>Custom templates\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Set width and alignment (left, center, right) with custom margins\u003C\u002Fli>\n\u003Cli>Customize pagination styles:\n\u003Cul>\n\u003Cli>Hover color\u003C\u002Fli>\n\u003Cli>Background color\u003C\u002Fli>\n\u003Cli>Current page background color\u003C\u002Fli>\n\u003Cli>Text color\u003C\u002Fli>\n\u003Cli>Current page text color\u003C\u002Fli>\n\u003Cli>Border color\u003C\u002Fli>\n\u003Cli>Border width and radius\u003C\u002Fli>\n\u003Cli>Several ready-made templates to choose from\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Add custom HTML\u002FCSS via plugin settings\u003C\u002Fli>\n\u003Cli>Fully compatible with latest WordPress version\u003C\u002Fli>\n\u003Cli>Intuitive interface – no coding required\u003C\u002Fli>\n\u003Cli>Step-by-step guides and video tutorials included\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cblockquote>\n\u003Cp>\u003Cstrong>Pro Features\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>All Free version features plus:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Automatically add pagination to:\n\u003Cul>\n\u003Cli>WooCommerce Shop\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>Select pagination type:\n\u003Cul>\n\u003Cli>Numeric\u003C\u002Fli>\n\u003Cli>“Load More” button\u003C\u002Fli>\n\u003Cli>Infinite scroll\u003C\u002Fli>\n\u003Cli>Next\u002FPrevious only\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>“Load More” after initial content load\u003C\u002Fli>\n\u003Cli>Divi theme compatibility [NEW]\u003C\u002Fli>\n\u003Cli>Scroll Progress Bar option [NEW]\u003C\u002Fli>\n\u003Cli>Priority support within 1 business day (\u003Ca href=\"https:\u002F\u002Fbestwebsoft.com\u002Fsupport-policy\u002F\" rel=\"nofollow ugc\">Support Policy\u003C\u002Fa>)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fbestwebsoft.com\u002Fproducts\u002Fwordpress\u002Fplugins\u002Fpagination\u002F?k=beef8d83cadcb70a8565e009a280f80c\" rel=\"nofollow ugc\">Upgrade to Pro Now\u003C\u002Fa>\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Cp>Have a feature request? Let us know! \u003Ca href=\"https:\u002F\u002Fsupport.bestwebsoft.com\u002Fhc\u002Fen-us\u002Frequests\u002Fnew\" rel=\"nofollow ugc\">Suggest a Feature\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch4>Documentation & Videos\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fbestwebsoft.com\u002Fdocumentation\u002Fpagination\u002Fpagination-user-guide\u002F\" rel=\"nofollow ugc\">[Doc] User Guide\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fbestwebsoft.com\u002Fdocumentation\u002Fhow-to-install-a-wordpress-product\u002Fhow-to-install-a-wordpress-plugin\u002F\" rel=\"nofollow ugc\">[Doc] Installation\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fbestwebsoft.com\u002Fdocumentation\u002Fhow-to-purchase-a-wordpress-plugin\u002Fhow-to-purchase-wordpress-plugin-from-bestwebsoft\u002F\" rel=\"nofollow ugc\">[Doc] Purchase\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"http:\u002F\u002Fwww.youtube.com\u002Fwatch?v=Xh0LjOSgxzs\" rel=\"nofollow ugc\">[Video] Installation Instruction\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Help & Support\u003C\u002Fh4>\n\u003Cp>Need help? Visit our Help Center — our friendly Support Team is here for you: \u003Ca href=\"https:\u002F\u002Fsupport.bestwebsoft.com\u002F\" rel=\"nofollow ugc\">https:\u002F\u002Fsupport.bestwebsoft.com\u002F\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch4>Translation\u003C\u002Fh4>\n\u003Cp>Available languages:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>French (fr_FR)\u003C\u002Fli>\n\u003Cli>German (de_DE)\u003C\u002Fli>\n\u003Cli>Portuguese (pt_PT)\u003C\u002Fli>\n\u003Cli>Hebrew (he_IL)\u003C\u002Fli>\n\u003Cli>Russian (ru_RU)\u003C\u002Fli>\n\u003Cli>Ukrainian (uk)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Want to improve or add a translation? \u003Ca href=\"https:\u002F\u002Fsupport.bestwebsoft.com\u002Fhc\u002Fen-us\u002Frequests\u002Fnew\" rel=\"nofollow ugc\">Send us your PO\u002FMO files\u003C\u002Fa>. Use \u003Ca href=\"http:\u002F\u002Fwww.poedit.net\u002Fdownload.php\" rel=\"nofollow ugc\">Poedit\u003C\u002Fa> for editing translation files.\u003C\u002Fp>\n\u003Ch4>Recommended Plugins\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fbestwebsoft.com\u002Fproducts\u002Fwordpress\u002Fplugins\u002Fupdater\u002F?k=f471af6c58ecd7f550f0601416e4331f\" rel=\"nofollow ugc\">Updater\u003C\u002Fa> – Automatically update WordPress core, plugins, and themes.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fbestwebsoft.com\u002Fproducts\u002Fwordpress\u002Fplugins\u002Fgallery\u002F?k=8a6c514916efe4264d0732b86b82487f\" rel=\"nofollow ugc\">Gallery\u003C\u002Fa> – Add responsive galleries and albums to your WordPress site.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fbestwebsoft.com\u002Fproducts\u002Fwordpress\u002Fplugins\u002Fportfolio\u002F?k=982e34e0a05371dc2dcca2a5fc535c1a\" rel=\"nofollow ugc\">Portfolio\u003C\u002Fa> – Create and manage portfolios to showcase your work.\u003C\u002Fli>\n\u003C\u002Ful>\n","Add customizable WordPress pagination to your website. Easily split long posts and pages into multiple parts for improved navigation and user experien &hellip;",5000,183449,96,45,"2025-12-03T11:25:00.000Z","6.9.4","6.2","",[20,21,22,4,23],"custom-pagination-block","multiple-navigation","multiple-pages","pagination-block","https:\u002F\u002Fbestwebsoft.com\u002Fproducts\u002Fwordpress\u002Fplugins\u002Fpagination\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fpagination.1.2.7.zip",99,3,0,"2023-03-27 00:00:00","2026-03-15T15:16:48.613Z",[32,48,57],{"id":33,"url_slug":34,"title":35,"description":36,"plugin_slug":4,"theme_slug":37,"affected_versions":38,"patched_in_version":39,"severity":40,"cvss_score":41,"cvss_vector":42,"vuln_type":43,"published_date":29,"updated_date":44,"references":45,"days_to_patch":47},"CVE-2023-28778","pagination-by-bestwebsoft-authenticated-administrator-stored-cross-site-scripting-2","Pagination by BestWebSoft \u003C= 1.2.2 - Authenticated (Administrator+) Stored Cross-Site Scripting","The Pagination by BestWebSoft plugin for WordPress is vulnerable to Stored Cross-Site Scripting in versions up to, and including, 1.2.2 due to insufficient input sanitization and output escaping. This makes it possible for authenticated attackers with administrator-level access, and above, to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page. This only impacts multi-site installations and installations where unfiltered_html has been disabled.",null,"\u003C=1.2.2","1.2.3","medium",4.4,"CVSS:3.1\u002FAV:N\u002FAC:H\u002FPR:H\u002FUI:N\u002FS:C\u002FC:L\u002FI:L\u002FA:N","Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')","2024-01-22 19:56:02",[46],"https:\u002F\u002Fwww.wordfence.com\u002Fthreat-intel\u002Fvulnerabilities\u002Fid\u002Fffbb85c5-e949-4c0f-8c02-2c022b802e05?source=api-prod",302,{"id":49,"url_slug":50,"title":51,"description":52,"plugin_slug":4,"theme_slug":37,"affected_versions":38,"patched_in_version":39,"severity":40,"cvss_score":41,"cvss_vector":42,"vuln_type":43,"published_date":53,"updated_date":44,"references":54,"days_to_patch":56},"WF-a4572874-afd4-4e46-8a28-76a0a6cc8acb-pagination","pagination-by-bestwebsoft-authenticated-administrator-stored-cross-site-scripting","Pagination by BestWebSoft \u003C 1.2.2 - Authenticated (Administrator+) Stored Cross-Site Scripting","The Pagination by BestWebSoft plugin for WordPress is vulnerable to Stored Cross-Site Scripting via admin settings in versions up to, and including, 1.2.2 due to insufficient input sanitization and output escaping. This makes it possible for authenticated attackers, with administrator-level permissions and above, to inject arbitrary web scripts in pages that will execute whenever a user accesses an injected page. This only affects multi-site installations and installations where unfiltered_html has been disabled.","2023-03-23 00:00:00",[55],"https:\u002F\u002Fwww.wordfence.com\u002Fthreat-intel\u002Fvulnerabilities\u002Fid\u002Fa4572874-afd4-4e46-8a28-76a0a6cc8acb?source=api-prod",306,{"id":58,"url_slug":59,"title":60,"description":61,"plugin_slug":4,"theme_slug":37,"affected_versions":62,"patched_in_version":63,"severity":40,"cvss_score":64,"cvss_vector":65,"vuln_type":43,"published_date":66,"updated_date":44,"references":67,"days_to_patch":69},"CVE-2017-18527","pagination-by-bestwebsoft-multiple-cross-site-scripting","Pagination by BestWebSoft \u003C= 1.0.6 - Multiple Cross-Site Scripting","The Pagination by BestWebSoft plugin for WordPress is vulnerable to Cross-Site Scripting in versions up to, and including, 1.0.6 due to insufficient input sanitization and output escaping. This makes it possible for attackers to inject arbitrary web scripts that execute in a victim's browser.","\u003C=1.0.6","1.0.7",6.1,"CVSS:3.1\u002FAV:N\u002FAC:L\u002FPR:N\u002FUI:R\u002FS:C\u002FC:L\u002FI:L\u002FA:N","2017-04-12 00:00:00",[68],"https:\u002F\u002Fwww.wordfence.com\u002Fthreat-intel\u002Fvulnerabilities\u002Fid\u002F2012090d-fd96-4609-aef1-0e3ec5dd2e38?source=api-prod",2477,{"slug":7,"display_name":7,"profile_url":8,"plugin_count":71,"total_installs":72,"avg_security_score":73,"avg_patch_time_days":74,"trust_score":75,"computed_at":76},17,207410,95,1729,76,"2026-04-03T23:03:18.886Z",[78,100,125,144,166],{"slug":79,"name":80,"version":81,"author":82,"author_profile":83,"description":84,"short_description":85,"active_installs":86,"downloaded":87,"rating":88,"num_ratings":89,"last_updated":90,"tested_up_to":91,"requires_at_least":92,"requires_php":18,"tags":93,"homepage":97,"download_link":98,"security_score":99,"vuln_count":28,"unpatched_count":28,"last_vuln_date":37,"fetched_at":30},"wp-pagenavi","WP-PageNavi","2.94.5","Lester Chan","https:\u002F\u002Fprofiles.wordpress.org\u002Fgamerz\u002F","\u003Cp>Want to replace the old \u003Cem>&larr; Older posts | Newer posts &rarr;\u003C\u002Fem> links with some page links?\u003C\u002Fp>\n\u003Cp>This plugin provides the \u003Ccode>wp_pagenavi()\u003C\u002Fcode> template tag which generates fancy pagination links.\u003C\u002Fp>\n\u003Ch3>Usage\u003C\u002Fh3>\n\u003Cp>In your theme, you need to find calls to next_posts_link() and previous_posts_link() and replace them.\u003C\u002Fp>\n\u003Cp>In the Twentyten theme, it looks like this:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>\u003Cdiv class=\"nav-previous\">\u003C?php next_posts_link( __( '\u003Cspan class=\"meta-nav\">&larr;\u003C\u002Fspan> Older posts', 'twentyten' ) ); ?>\u003C\u002Fdiv>\n\u003Cdiv class=\"nav-next\">\u003C?php previous_posts_link( __( 'Newer posts \u003Cspan class=\"meta-nav\">&rarr;\u003C\u002Fspan>', 'twentyten' ) ); ?>\u003C\u002Fdiv>\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>You would replace those two lines with this:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>\u003C?php wp_pagenavi(); ?>\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>For multipart pages, you would look for code like this:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>\u003C?php wp_link_pages( ... ); ?>\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>and replace it with this:\u003C\u002Fp>\n\u003Cpre>\u003Ccode>\u003C?php wp_pagenavi( array( 'type' => 'multipart' ) ); ?>\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cp>Go to \u003Cem>WP-Admin -> Settings -> PageNavi\u003C\u002Fem> for configuration.\u003C\u002Fp>\n\u003Ch3>Changing the CSS\u003C\u002Fh3>\n\u003Cp>If you need to configure the CSS style of WP-PageNavi, you can copy the \u003Ccode>pagenavi-css.css\u003C\u002Fcode> file from the plugin directory to your theme’s directory and make your modifications there. This way, you won’t lose your changes when you update the plugin.\u003C\u002Fp>\n\u003Cp>Alternatively, you can uncheck the “Use pagenavi.css?” option from the settings page and add the styles to your theme’s style.css file directly.\u003C\u002Fp>\n\u003Ch3>Changing Class Names\u003C\u002Fh3>\n\u003Cp>There are \u003Ca href=\"https:\u002F\u002Fcodex.wordpress.org\u002FGlossary#Filter\" rel=\"nofollow ugc\">filters\u003C\u002Fa> that can be used to change the default class names that are assigned to page navigation elements.\u003C\u002Fp>\n\u003Ch4>Filters\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Ccode>wp_pagenavi_class_pages\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>wp_pagenavi_class_first\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>wp_pagenavi_class_previouspostslink\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>wp_pagenavi_class_extend\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>wp_pagenavi_class_smaller\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>wp_pagenavi_class_page\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>wp_pagenavi_class_current\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>wp_pagenavi_class_larger\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>wp_pagenavi_class_nextpostslink\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>wp_pagenavi_class_last\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Filter Usage\u003C\u002Fh4>\n\u003Cpre>\u003Ccode>\u002F\u002F Simple Usage - 1 callback per filter\nadd_filter('wp_pagenavi_class_previouspostslink', 'theme_pagination_previouspostslink_class');\nadd_filter('wp_pagenavi_class_nextpostslink', 'theme_pagination_nextpostslink_class');\nadd_filter('wp_pagenavi_class_page', 'theme_pagination_page_class');\n\nfunction theme_pagination_previouspostslink_class($class_name) {\n  return 'pagination__control-link pagination__control-link--previous';\n}\n\nfunction theme_pagination_nextpostslink_class($class_name) {\n  return 'pagination__control-link pagination__control-link--next';\n}\n\nfunction theme_pagination_page_class($class_name) {\n  return 'pagination__current-page';\n}\n\n\n\u002F\u002F More Concise Usage - 1 callback for all filters\nadd_filter('wp_pagenavi_class_previouspostslink', 'theme_pagination_class');\nadd_filter('wp_pagenavi_class_nextpostslink', 'theme_pagination_class');\nadd_filter('wp_pagenavi_class_page', 'theme_pagination_class');\n\nfunction theme_pagination_class($class_name) {\n  switch($class_name) {\n    case 'previouspostslink':\n      $class_name = 'pagination__control-link pagination__control-link--previous';\n      break;\n    case 'nextpostslink':\n      $class_name = 'pagination__control-link pagination__control-link--next';\n      break;\n    case 'page':\n      $class_name = 'pagination__current'\n      break;\n  }\n  return $class_name;\n}\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch3>Development\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Flesterchan\u002Fwp-pagenavi\" title=\"https:\u002F\u002Fgithub.com\u002Flesterchan\u002Fwp-pagenavi\" rel=\"nofollow ugc\">https:\u002F\u002Fgithub.com\u002Flesterchan\u002Fwp-pagenavi\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Credits\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Plugin icon by \u003Ca href=\"http:\u002F\u002Fwww.simpleicon.com\" rel=\"nofollow ugc\">SimpleIcon\u003C\u002Fa> from \u003Ca href=\"http:\u002F\u002Fwww.flaticon.com\" rel=\"nofollow ugc\">Flaticon\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Donations\u003C\u002Fh3>\n\u003Cp>I spent most of my free time creating, updating, maintaining and supporting these plugins, if you really love my plugins and could spare me a couple of bucks, I will really appreciate it. If not feel free to use it without any obligations.\u003C\u002Fp>\n","Adds a more advanced paging navigation interface.",500000,13305409,94,149,"2024-12-19T01:02:00.000Z","6.7.5","4.6",[94,95,4,96],"navigation","pages","paging","https:\u002F\u002Flesterchan.net\u002Fportfolio\u002Fprogramming\u002Fphp\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwp-pagenavi.2.94.5.zip",92,{"slug":101,"name":102,"version":103,"author":104,"author_profile":105,"description":106,"short_description":107,"active_installs":108,"downloaded":109,"rating":110,"num_ratings":111,"last_updated":112,"tested_up_to":113,"requires_at_least":114,"requires_php":115,"tags":116,"homepage":122,"download_link":123,"security_score":124,"vuln_count":28,"unpatched_count":28,"last_vuln_date":37,"fetched_at":30},"load-more-products-for-woocommerce","Load More Products for WooCommerce","1.2.3.4","BeRocket","https:\u002F\u002Fprofiles.wordpress.org\u002Fberocket\u002F","\u003Cp>Load products from next page via AJAX with infinite scrolling or load more products button\u003C\u002Fp>\n\u003Ch4>Features:\u003C\u002Fh4>\n\u003Cp>✅ Infinite Scroll for WooCommerce Products\u003Cbr \u002F>\n✅ Load More Products Button or AJAX pagination\u003Cbr \u002F>\n✅ Custom button text\u003Cbr \u002F>\n✅ JavaScript hooks for custom code\u003C\u002Fp>\n\u003Ch4>Additional Features in Paid Plugin:\u003C\u002Fh4>\n\u003Cp>✅ Lazy Load for images\u003Cbr \u002F>\n✅ 40 Animations for Lazy Load\u003Cbr \u002F>\n✅ Customization for Load More Button\u003Cbr \u002F>\n✅ Customizable Loading Image\u003Cbr \u002F>\n✅ Different Products Load Type for Mobile Devices and Other\u003Cbr \u002F>\n✅ JavaScript Before and After AJAX Update\u003Cbr \u002F>\n✅ ‘Loading…’, ‘No more products’, etc messages customization\u003C\u002Fp>\n\u003Ch4>Plugin Links:\u003C\u002Fh4>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fberocket.com\u002Fwoocommerce-load-more-products\u002F?utm_source=wordpress_org&utm_medium=plugin_links&utm_campaign=BeRocket_LMP\" rel=\"nofollow ugc\">Paid Plugin\u003C\u002Fa>\u003Cbr \u002F>\n\u003Ca href=\"https:\u002F\u002Fwoocommerce-load-more.berocket.com\u002Fshop\u002F?utm_source=wordpress_org&utm_medium=plugin_links&utm_campaign=BeRocket_LMP\" rel=\"nofollow ugc\">Demo 1\u003C\u002Fa>\u003Cbr \u002F>\n\u003Ca href=\"https:\u002F\u002Fwoocommerce-infinite-scroll.berocket.com\u002F?utm_source=wordpress_org&utm_medium=plugin_links&utm_campaign=BeRocket_LMP\" rel=\"nofollow ugc\">Demo 2\u003C\u002Fa>\u003Cbr \u002F>\n\u003Ca href=\"https:\u002F\u002Fdocs.berocket.com\u002Fplugin\u002Fwoocommerce-load-more-products?utm_source=wordpress_org&utm_medium=plugin_links&utm_campaign=BeRocket_LMP\" rel=\"nofollow ugc\">Docs\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch4>🍬 Wanna try admin side?\u003C\u002Fh4>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fberocket.com\u002Fwoocommerce-load-more-products\u002F?utm_source=wordpress_org&utm_medium=admin_demo&utm_campaign=BeRocket_LMP#try-admin\" rel=\"nofollow ugc\">Admin Demo\u003C\u002Fa> – Get access to this plugin’s admin and try it from inside. Change things and watch how they work.\u003C\u002Fp>\n\u003Ch4>Premium plugin video\u003C\u002Fh4>\n\u003Cp>\u003Cspan class=\"embed-youtube\" style=\"text-align:center; display: block;\">\u003Ciframe loading=\"lazy\" class=\"youtube-player\" width=\"750\" height=\"422\" src=\"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FZ5cIGNU0XNU?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>\u003Cbr \u002F>\n\u003Cspan class=\"embed-youtube\" style=\"text-align:center; display: block;\">\u003Ciframe loading=\"lazy\" class=\"youtube-player\" width=\"750\" height=\"422\" src=\"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FvH2wVvh20IA?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>\u003Cbr \u002F>\n\u003Cem>we don’t have video with free plugin right now but we are working on it\u003C\u002Fem>\u003C\u002Fp>\n\u003Ch4>Compatibility with WooCommerce plugins\u003C\u002Fh4>\n\u003Cp>Load More Products for WooCommerce has been tested and compatibility is certain with the following WooCommerce plugins that you can add to your site:\u003C\u002Fp>\n\u003Cp>🔸 \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fwoocommerce-ajax-filters\u002F\" rel=\"ugc\">\u003Cstrong>Advanced AJAX Product Filters\u003C\u002Fstrong>\u003C\u002Fa>\u003Cbr \u002F>\n🔸 \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fadvanced-product-labels-for-woocommerce\u002F\" rel=\"ugc\">\u003Cstrong>Advanced Product Labels for WooCommerce\u003C\u002Fstrong>\u003C\u002Fa>\u003Cbr \u002F>\n🔸 \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fgridlist-view-for-woocommerce\u002F\" rel=\"ugc\">\u003Cstrong>Grid\u002FList View for WooCommerce\u003C\u002Fstrong>\u003C\u002Fa>\u003Cbr \u002F>\n🔸 \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fpagination-styler-for-woocommerce\u002F\" rel=\"ugc\">\u003Cstrong>Pagination Styler for WooCommerce\u003C\u002Fstrong>\u003C\u002Fa>\u003Cbr \u002F>\n🔸 \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fproduct-preview-for-woocommerce\u002F\" rel=\"ugc\">\u003Cstrong>Product Preview for WooCommerce\u003C\u002Fstrong>\u003C\u002Fa>\u003Cbr \u002F>\n🔸 \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fwish-wait-list-for-woocommerce\u002F\" rel=\"ugc\">\u003Cstrong>Wishlist and Waitlist for WooCommerce\u003C\u002Fstrong>\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>—\u003C\u002Fp>\n","Load products from next page via AJAX with infinite scrolling or load more products button",20000,403921,98,270,"2025-10-27T14:37:00.000Z","6.8.5","5.0","7.0",[117,118,119,120,121],"ajax-load-more","ajax-pagination","infinite-scroll","lazy-load","load-more","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fload-more-products-for-woocommerce\u002F?utm_source=free_plugin&utm_medium=plugins&utm_campaign=BeRocket_LMP","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fload-more-products-for-woocommerce.1.2.3.4.zip",100,{"slug":126,"name":127,"version":128,"author":129,"author_profile":130,"description":131,"short_description":132,"active_installs":108,"downloaded":133,"rating":99,"num_ratings":134,"last_updated":135,"tested_up_to":91,"requires_at_least":18,"requires_php":18,"tags":136,"homepage":139,"download_link":140,"security_score":141,"vuln_count":142,"unpatched_count":28,"last_vuln_date":143,"fetched_at":30},"wp-paginate","WP-Paginate","2.2.4","maxfoundry","https:\u002F\u002Fprofiles.wordpress.org\u002Fmaxfoundry\u002F","\u003Ch4>Latest News\u003C\u002Fh4>\n\u003Cp>WP-Paginate is a simple and flexible pagination plugin which provides users with better navigation on your WordPress site.\u003C\u002Fp>\n\u003Cp>In addition to increasing the user experience for your visitors, it has also been widely reported that pagination increases the SEO of your site by providing more links to your content.\u003C\u002Fp>\n\u003Cp>You can add custom CSS for your pagination links with the Custom CSS tab in WP-Paginate Settings.\u003C\u002Fp>\n\u003Cp>Starting in version 1.1, WP-Paginate can also be used to paginate post comments!\u003C\u002Fp>\n\u003Cp>Translations: https:\u002F\u002Fplugins.svn.wordpress.org\u002Fwp-paginate\u002FI18n (check the version number for the correct file)\u003C\u002Fp>\n","WP-Paginate is a simple and flexible pagination plugin which provides users with better navigation on your WordPress site.",1023369,107,"2025-02-19T12:18:00.000Z",[94,137,138,4,126],"page","paginate","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fwp-paginate\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwp-paginate.2.2.4.zip",91,2,"2022-06-16 00:00:00",{"slug":145,"name":146,"version":147,"author":148,"author_profile":149,"description":150,"short_description":151,"active_installs":152,"downloaded":153,"rating":154,"num_ratings":155,"last_updated":156,"tested_up_to":16,"requires_at_least":157,"requires_php":158,"tags":159,"homepage":162,"download_link":163,"security_score":26,"vuln_count":164,"unpatched_count":28,"last_vuln_date":165,"fetched_at":30},"yith-infinite-scrolling","YITH Infinite Scrolling","2.6.0","YITHEMES","https:\u002F\u002Fprofiles.wordpress.org\u002Fyithemes\u002F","\u003Cp>**Replace product or article pagination with infinite scrolling for a more efficient browsing experience for your users **\u003C\u002Fp>\n\u003Cp>The \u003Cstrong>YITH Infinite Scrolling\u003C\u002Fstrong> plugin allows you to add infinite scrolling functionality to your website and offer your users a wide selection of products or articles without having to click on buttons or pagination numbers.\u003C\u002Fp>\n\u003Cp>A free plugin that will improve the user experience when browsing your site, especially if you have a store and your customers often buy on mobile: infinite scrolling is in fact the easiest and most intuitive navigation system on smartphones and tablets.\u003C\u002Fp>\n\u003Ch3>Free version options\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Enable infinite scrolling for a particular section (shop, blog, etc.)\u003C\u002Fli>\n\u003Cli>Enable infinite scrolling on mobile resolutions\u003C\u002Fli>\n\u003Cli>Use the default loading icon or load a custom icon\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Would you like to see the plugin in action? \u003Ca href=\"https:\u002F\u002Fplugins.yithemes.com\u002Fyith-infinite-scrolling-free\u002F\" rel=\"nofollow ugc\">Check out the Live Demo >\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch3>Need more? Get the premium version!\u003C\u002Fh3>\n\u003Cp>Features of the Premium version of the plugin:\u003Cbr \u002F>\n* Create infinite scrolling sections to use anywhere in your store (products, articles, reviews, etc).\u003Cbr \u002F>\n* Dynamically update the page URL each time new elements are loaded in AJAX\u003Cbr \u002F>\n* Choose the type of pagination between infinite loading, a “Load more” button, or a pagination in AJAX\u003Cbr \u002F>\n* Four loading icons available\u003Cbr \u002F>\n* Customize the text of the “Load more” button\u003Cbr \u002F>\n* Choose an loading animation (fade, zoom, etc.)\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"https:\u002F\u002Fplugins.yithemes.com\u002Fyith-infinite-scrolling\" rel=\"nofollow ugc\">Live Demo of the premium version >\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch3>Suggestions\u003C\u002Fh3>\n\u003Cp>If you have suggestions about how to improve YITH Infinite Scrolling, you can \u003Ca href=\"mailto:plugins@yithemes.com\" title=\"Your Inspiration Themes\" rel=\"nofollow ugc\">write us\u003C\u002Fa> so we can bundle them into YITH Infinite Scrolling.\u003C\u002Fp>\n\u003Ch3>Translators\u003C\u002Fh3>\n\u003Ch4>Available Languages\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>English\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>If you can’t find this plugin in your language and want to translate it, use the dedicated tool at \u003Ca href=\"https:\u002F\u002Ftranslate.wordpress.org\u002Flocale\u002Fit\u002Fdefault\u002Fwp-plugins\u002Fyith-infinite-scrolling\" title=\"Translating WordPress\" rel=\"nofollow ugc\">Translating WordPress\u003C\u002Fa>.\u003Cbr \u002F>\nOr, if you have created your own language pack, or have an update for an existing one, you can send it as an email attachment from our \u003Ca href=\"http:\u002F\u002Fyithemes.com\u002Fcontact\u002F\" title=\"Your Inspiration Themes\" rel=\"nofollow ugc\">Contacts page\u003C\u002Fa> and we will bundle into YITH Infinite Scrolling.\u003C\u002Fp>\n","Add infinite scrolling to archive post or shop page.",10000,463415,86,46,"2026-03-03T13:04:00.000Z","6.7","7.4",[118,119,160,121,161],"infinite-scrolling","yith","https:\u002F\u002Fyithemes.com\u002Fthemes\u002Fplugins\u002Fyith-infinite-scrolling\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fyith-infinite-scrolling.2.6.0.zip",1,"2022-11-11 00:00:00",{"slug":167,"name":168,"version":169,"author":170,"author_profile":171,"description":172,"short_description":173,"active_installs":174,"downloaded":175,"rating":13,"num_ratings":176,"last_updated":177,"tested_up_to":178,"requires_at_least":179,"requires_php":18,"tags":180,"homepage":181,"download_link":182,"security_score":183,"vuln_count":28,"unpatched_count":28,"last_vuln_date":37,"fetched_at":30},"wp-pagenavi-style","WP PageNavi Style","1.4","Nilesh Shiragave","https:\u002F\u002Fprofiles.wordpress.org\u002Fsnilesh\u002F","\u003Cp>First i will like to say thanks to Lester ‘GaMerZ’ Chan & scribu for this beautiful wordpress page navigation plugin.\u003C\u002Fp>\n\u003Cp>To Use this plugin you must have \u003Ca href=\"https:\u002F\u002Fwordpress.org\u002Fextend\u002Fplugins\u002Fwp-pagenavi\u002F\" rel=\"ugc\">Wp Pagenavi\u003C\u002Fa>  plugin installed on your wordpress blog.\u003C\u002Fp>\n\u003Cp>Links: \u003Ca href=\"http:\u002F\u002Fwww.snilesh.com\u002Fwordpress-pagenavi-style-plugin\u002F\" rel=\"nofollow ugc\">Pagination Demo\u003C\u002Fa>\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"http:\u002F\u002Fwww.snilesh.com\u002Fwordpress-pagenavi-style-plugin\u002F\" rel=\"nofollow ugc\">Documentation\u003C\u002Fa> | \u003Ca href=\"http:\u002F\u002Fscribu.net\u002Fwordpress\u002Fwp-pagenavi\u002F\" rel=\"nofollow ugc\">wp pagenavi Plugin News\u003C\u002Fa>\u003C\u002Fp>\n","Adds a more styling options to Wp-PageNavi wordpress plugin.",9000,212764,16,"2017-11-28T08:24:00.000Z","3.9.40","3.0",[94,95,4,96],"http:\u002F\u002Fwww.snilesh.com\u002Fwordpress-pagenavi-style-plugin\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwp-pagenavi-style.zip",85,{"attackSurface":185,"codeSignals":292,"taintFlows":375,"riskAssessment":458,"analyzedAt":466},{"hooks":186,"ajaxHandlers":278,"restRoutes":289,"shortcodes":290,"cronEvents":291,"entryPointCount":142,"unprotectedCount":28},[187,194,198,202,207,211,215,219,224,229,234,238,242,246,250,253,257,261,265,268,271,275],{"type":188,"name":189,"callback":190,"priority":191,"file":192,"line":193},"filter","load_textdomain_mofile","bws_get_mofile",10,"bws_menu\\bws_functions.php",43,{"type":188,"name":195,"callback":196,"file":192,"line":197},"mce_external_plugins","bws_add_buttons",1146,{"type":188,"name":199,"callback":200,"file":192,"line":201},"mce_buttons","bws_register_buttons",1147,{"type":203,"name":204,"callback":205,"file":192,"line":206},"action","admin_init","bws_plugins_admin_init",1433,{"type":203,"name":208,"callback":209,"file":192,"line":210},"admin_enqueue_scripts","bws_admin_enqueue_scripts",1434,{"type":203,"name":212,"callback":213,"file":192,"line":214},"admin_head","bws_plugins_admin_head",1435,{"type":203,"name":216,"callback":217,"file":192,"line":218},"admin_footer","bws_plugins_admin_footer",1436,{"type":203,"name":220,"callback":221,"priority":222,"file":192,"line":223},"admin_notices","bws_admin_notices",30,1438,{"type":203,"name":225,"callback":226,"priority":227,"file":192,"line":228},"wp_enqueue_scripts","bws_enqueue_custom_code_css_js",20,1440,{"type":188,"name":230,"callback":231,"file":232,"line":233},"loop_start","pgntn_display_with_loop","pagination.php",421,{"type":188,"name":235,"callback":236,"file":232,"line":237},"loop_end","pgntn_display_with_loop_bottom",424,{"type":188,"name":239,"callback":240,"priority":191,"file":232,"line":241},"wp_link_pages","pgntn_wp_link_pages",428,{"type":203,"name":243,"callback":244,"file":232,"line":245},"admin_menu","pgntn_add_admin_menu",945,{"type":203,"name":247,"callback":248,"file":232,"line":249},"init","pgntn_init",946,{"type":203,"name":204,"callback":251,"file":232,"line":252},"pgntn_admin_init",947,{"type":203,"name":254,"callback":255,"file":232,"line":256},"plugins_loaded","pgntn_plugins_loaded",948,{"type":188,"name":258,"callback":259,"priority":191,"file":232,"line":260},"plugin_action_links","pgntn_plugin_action_links",950,{"type":188,"name":262,"callback":263,"priority":191,"file":232,"line":264},"plugin_row_meta","pgntn_register_plugin_links",951,{"type":203,"name":208,"callback":266,"file":232,"line":267},"pgntn_admin_head",953,{"type":203,"name":225,"callback":269,"file":232,"line":270},"pgntn_add_script",954,{"type":203,"name":272,"callback":273,"file":232,"line":274},"wp_footer","pgntn_wp_footer",955,{"type":203,"name":220,"callback":276,"file":232,"line":277},"pgntn_admin_notices",957,[279,285],{"action":280,"nopriv":281,"callback":280,"hasNonce":282,"hasCapCheck":281,"file":283,"line":284},"bws_submit_request_feature_action",false,true,"bws_menu\\class-bws-settings.php",1466,{"action":286,"nopriv":281,"callback":286,"hasNonce":282,"hasCapCheck":281,"file":287,"line":288},"bws_submit_uninstall_reason_action","bws_menu\\deactivation-form.php",433,[],[],[],{"dangerousFunctions":293,"sqlUsage":294,"outputEscaping":301,"fileOperations":142,"externalRequests":373,"nonceChecks":227,"capabilityChecks":27,"bundledLibraries":374},[],{"prepared":142,"raw":142,"locations":295},[296,299],{"file":192,"line":297,"context":298},1410,"$wpdb->get_col() with variable interpolation",{"file":232,"line":300,"context":298},866,{"escaped":302,"rawEcho":303,"locations":304},642,32,[305,308,310,312,314,317,319,321,323,325,327,329,331,333,335,337,339,342,345,347,349,351,353,355,357,359,361,363,365,367,369,371],{"file":192,"line":306,"context":307},170,"raw output",{"file":192,"line":309,"context":307},189,{"file":192,"line":311,"context":307},191,{"file":192,"line":313,"context":307},216,{"file":315,"line":316,"context":307},"bws_menu\\bws_menu.php",589,{"file":315,"line":318,"context":307},674,{"file":315,"line":320,"context":307},678,{"file":315,"line":322,"context":307},681,{"file":315,"line":324,"context":307},765,{"file":283,"line":326,"context":307},555,{"file":283,"line":328,"context":307},581,{"file":283,"line":330,"context":307},920,{"file":283,"line":332,"context":307},1203,{"file":283,"line":334,"context":307},1205,{"file":283,"line":336,"context":307},1207,{"file":283,"line":338,"context":307},1210,{"file":340,"line":341,"context":307},"bws_menu\\deprecated.php",131,{"file":343,"line":344,"context":307},"includes\\class-pgntn-settings.php",223,{"file":343,"line":346,"context":307},257,{"file":343,"line":348,"context":307},258,{"file":343,"line":350,"context":307},259,{"file":343,"line":352,"context":307},260,{"file":343,"line":354,"context":307},261,{"file":343,"line":356,"context":307},262,{"file":232,"line":358,"context":307},288,{"file":232,"line":360,"context":307},390,{"file":232,"line":362,"context":307},397,{"file":232,"line":364,"context":307},549,{"file":232,"line":366,"context":307},554,{"file":232,"line":368,"context":307},586,{"file":232,"line":370,"context":307},632,{"file":232,"line":372,"context":307},739,6,[],[376,408,422,432,440,450],{"entryPoint":377,"graph":378,"unsanitizedCount":28,"severity":407},"bws_add_menu_render (bws_menu\\bws_menu.php:18)",{"nodes":379,"edges":403},[380,385,391,395,397,400],{"id":381,"type":382,"label":383,"file":315,"line":384},"n0","source","$_GET (x14)",27,{"id":386,"type":387,"label":388,"file":315,"line":389,"wp_function":390},"n1","sink","echo() [XSS]",374,"echo",{"id":392,"type":382,"label":393,"file":315,"line":394},"n2","$_POST (x2)",101,{"id":396,"type":387,"label":388,"file":315,"line":237,"wp_function":390},"n3",{"id":398,"type":382,"label":399,"file":315,"line":358},"n4","$_REQUEST (x2)",{"id":401,"type":387,"label":388,"file":315,"line":402,"wp_function":390},"n5",468,[404,405,406],{"from":381,"to":386,"sanitized":282},{"from":392,"to":396,"sanitized":282},{"from":398,"to":401,"sanitized":282},"low",{"entryPoint":409,"graph":410,"unsanitizedCount":28,"severity":407},"\u003Cbws_menu> (bws_menu\\bws_menu.php:0)",{"nodes":411,"edges":418},[412,413,414,415,416,417],{"id":381,"type":382,"label":383,"file":315,"line":384},{"id":386,"type":387,"label":388,"file":315,"line":389,"wp_function":390},{"id":392,"type":382,"label":393,"file":315,"line":394},{"id":396,"type":387,"label":388,"file":315,"line":237,"wp_function":390},{"id":398,"type":382,"label":399,"file":315,"line":358},{"id":401,"type":387,"label":388,"file":315,"line":402,"wp_function":390},[419,420,421],{"from":381,"to":386,"sanitized":282},{"from":392,"to":396,"sanitized":282},{"from":398,"to":401,"sanitized":282},{"entryPoint":423,"graph":424,"unsanitizedCount":28,"severity":407},"display_tabs (bws_menu\\class-bws-settings.php:291)",{"nodes":425,"edges":430},[426,429],{"id":381,"type":382,"label":427,"file":283,"line":428},"$_REQUEST['bws_active_tab']",301,{"id":386,"type":387,"label":388,"file":283,"line":428,"wp_function":390},[431],{"from":381,"to":386,"sanitized":282},{"entryPoint":433,"graph":434,"unsanitizedCount":28,"severity":407},"\u003Cclass-bws-settings> (bws_menu\\class-bws-settings.php:0)",{"nodes":435,"edges":438},[436,437],{"id":381,"type":382,"label":427,"file":283,"line":428},{"id":386,"type":387,"label":388,"file":283,"line":428,"wp_function":390},[439],{"from":381,"to":386,"sanitized":282},{"entryPoint":441,"graph":442,"unsanitizedCount":28,"severity":407},"bws_go_pro_tab_show (bws_menu\\deprecated.php:227)",{"nodes":443,"edges":448},[444,446],{"id":381,"type":382,"label":393,"file":340,"line":445},229,{"id":386,"type":387,"label":388,"file":340,"line":447,"wp_function":390},269,[449],{"from":381,"to":386,"sanitized":282},{"entryPoint":451,"graph":452,"unsanitizedCount":28,"severity":407},"\u003Cdeprecated> (bws_menu\\deprecated.php:0)",{"nodes":453,"edges":456},[454,455],{"id":381,"type":382,"label":393,"file":340,"line":445},{"id":386,"type":387,"label":388,"file":340,"line":447,"wp_function":390},[457],{"from":381,"to":386,"sanitized":282},{"summary":459,"deductions":460},"The 'pagination' plugin v1.2.7 exhibits a generally good security posture, with no identified critical or high severity vulnerabilities in static and taint analysis.  The plugin demonstrates strong adherence to security best practices, as evidenced by a high percentage of properly escaped outputs and a significant number of nonce and capability checks.  Furthermore, the absence of any unpatched CVEs is a positive sign.\n\nHowever, there are some areas that warrant attention.  The presence of 50% of SQL queries not using prepared statements, while not resulting in immediate high-risk vulnerabilities in this analysis, represents a potential risk for SQL injection if input validation were to be less robust in other areas. The plugin also performs six external HTTP requests, which could be a vector for supply chain attacks or data exfiltration if the target endpoints are compromised or malicious.  The limited number of entry points (two AJAX handlers) with no identified unauthenticated access is a strength, but it's crucial to ensure these handlers are thoroughly secured with proper authorization checks.\n\nHistorically, the plugin has had three medium-severity Cross-Site Scripting (XSS) vulnerabilities, with the last one being addressed in March 2023. While these are currently patched, this pattern indicates a recurring area of concern that requires ongoing vigilance.  The overall security is good due to strong input sanitization and authorization practices evident in the static analysis, but the SQL query and external HTTP request areas, combined with past XSS history, suggest that continuous monitoring and potential code review are advisable to maintain a strong security profile.",[461,464],{"reason":462,"points":463},"SQL queries not using prepared statements (50%)",5,{"reason":465,"points":27},"External HTTP requests (6)","2026-03-16T18:06:32.996Z",{"wat":468,"direct":478},{"assetPaths":469,"generatorPatterns":473,"scriptPaths":474,"versionParams":475},[470,471,472],"\u002Fwp-content\u002Fplugins\u002Fpagination\u002Fcss\u002Fstyle.css","\u002Fwp-content\u002Fplugins\u002Fpagination\u002Fjs\u002Fscript.js","\u002Fwp-content\u002Fplugins\u002Fpagination\u002Fincludes\u002Fclass-pgntn-settings.php",[],[471],[476,477],"pagination\u002Fcss\u002Fstyle.css?ver=","pagination\u002Fjs\u002Fscript.js?ver=",{"cssClasses":479,"htmlComments":483,"htmlAttributes":486,"restEndpoints":488,"jsGlobals":489,"shortcodeOutput":491},[480,481,482],"pagination_nav","pgntn-pagination-wrapper","pgntn-pagination-links",[484,485],"\u003C!-- general -->","\u003C!-- This is a placeholder for the settings form -->",[487],"data-pgntn-settings",[],[490],"pgntn_params",[492,493],"[pagination]","[pgntn]"]