[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fOjSOfx4DYrufG2S1GP4-WQEEpXbdqrdrVhbzJD_8QOA":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":29,"last_vuln_date":30,"fetched_at":31,"vulnerabilities":32,"developer":65,"crawl_stats":38,"alternatives":72,"analysis":176,"fingerprints":353},"alphabetic-pagination","Alphabetic Pagination","3.2.5","Fahad Mahmood","https:\u002F\u002Fprofiles.wordpress.org\u002Ffahadmahmood\u002F","\u003Cul>\n\u003Cli>\n\u003Cp>Author: \u003Ca href=\"https:\u002F\u002Fwww.androidbubbles.com\u002Fcontact\" rel=\"nofollow ugc\">Fahad Mahmood\u003C\u002Fa>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>Project URI: \u003Ca href=\"http:\u002F\u002Fandroidbubble.com\u002Fblog\u002Fwordpress\u002Fplugins\u002Falphabetic-pagination\" rel=\"nofollow ugc\">http:\u002F\u002Fandroidbubble.com\u002Fblog\u002Fwordpress\u002Fplugins\u002Falphabetic-pagination\u003C\u002Fa>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>WooCommerce Shop Page: \u003Ca href=\"http:\u002F\u002Fdemo.androidbubble.com\u002Fshop\" rel=\"nofollow ugc\">http:\u002F\u002Fdemo.androidbubble.com\u002Fshop\u003C\u002Fa>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>WooCommerce Product Category: \u003Ca href=\"http:\u002F\u002Fdemo.androidbubble.com\u002Fproduct-category\u002Ffood-items\" rel=\"nofollow ugc\">http:\u002F\u002Fdemo.androidbubble.com\u002Fproduct-category\u002Ffood-items\u003C\u002Fa>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>License: GPL 3. See License below for copyright jots and titles.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Alphabetic pagination is a great plugin to filter your posts\u002Fpages and WooCommerce products with alphabets. It is simple to use and easy to understand for customization. Alphabetic Pagination allows you to enable pagination on pages, posts and categories. By default it works with categories to filter posts inside with the selection from the settings page. You can enable it for other sections as well.\u003Cbr \u002F>\nOptions are availble to select auto\u002Fcustom implementation, where to display post type\u002Fstatus selection and DOM position. You can activate another amazing plugin Chameleon to apply styles on pagination. Pagination can be enabled for selected pages\u002Fposts\u002Ftaxonomies with additional shortcodes. Custom implementation, shortcodes and permissions are available in advanced version. Templates are avarialble with another WordPress plugin Chameleon to shape your page with different style. You can display pagination on archives, categories, shops, portfolio, or selected post\u002Fpage\u002Fproduct\u002Fcategory etc.\u003C\u002Fp>\n\u003Cp>Important!\u003C\u002Fp>\n\u003Cp>Visit my blog and suggest good features which you wana see in this plugin.\u003C\u002Fp>\n\u003Ch4>Tags\u003C\u002Fh4>\n\u003Cp>listing, posts, pages, navigation, categories,taxonomies, custom, arabic, english, russian, korean, hungarian, greek, wpml, translation, CPT-onomies\u003C\u002Fp>\n\u003Ch3>Basic Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Auto Implementation\u003C\u002Fli>\n\u003Cli>Display Empty Alphabets (ON\u002FOFF)\u003C\u002Fli>\n\u003Cli>Alphabets Grouping\u003C\u002Fli>\n\u003Cli>Hide\u002FShow pagination if only one post available (ON\u002FOFF)\u003C\u002Fli>\n\u003Cli>Specific DOM & CSS selectors\u003C\u002Fli>\n\u003Cli>Language selection\u003C\u002Fli>\n\u003Cli>Styles and Templates (Using WordPress Plugin Chameleon)\u003C\u002Fli>\n\u003Cli>Custom DOM & CSS selectors\u003C\u002Fli>\n\u003Cli>Manage settings page with Android App (Google Play Store)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Advanced Features\u003C\u002Fh3>\n\u003Cul>\n\u003Cli>Custom Implementation\u003C\u002Fli>\n\u003Cli>Shortcodes for Pagination\u003C\u002Fli>\n\u003Cli>Shortcodes for Listing\u002FResults\u003C\u002Fli>\n\u003Cli>Shortcodes for Users List\u003C\u002Fli>\n\u003Cli>jQuery\u002FJS based one page listing and pagination\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch3>Video Tutorials\u003C\u002Fh3>\n\u003Ch4>Elementor + Shortcodes\u003C\u002Fh4>\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\u002F23DPJOrY2zY?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\u003Ch4>Styles\u003C\u002Fh4>\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\u002FI8IAnf8wFpw?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\u003Ch3>License\u003C\u002Fh3>\n\u003Cp>This is a free software: you can redistribute it and\u002For modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 2 of the License, or any later version. This plugin is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this plugin. If not, see http:\u002F\u002Fwww.gnu.org\u002Flicenses\u002Fgpl-2.0.html.\u003C\u002Fp>\n","Alphabetic Pagination allows you to enable pagination on pages, posts, categories and WooCommerce shop page.",500,84818,94,81,"2026-02-05T14:37:00.000Z","6.9.4","3.0","7.0",[20,21,22,23,24],"alphabetic","filtering","pagination","posts-pagination","sorting","http:\u002F\u002Fandroidbubble.com\u002Fblog\u002Fwordpress\u002Fplugins\u002Falphabetic-pagination","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Falphabetic-pagination.3.2.5.zip",96,2,0,"2025-02-14 00:00:00","2026-03-15T15:16:48.613Z",[33,49],{"id":34,"url_slug":35,"title":36,"description":37,"plugin_slug":4,"theme_slug":38,"affected_versions":39,"patched_in_version":40,"severity":41,"cvss_score":42,"cvss_vector":43,"vuln_type":44,"published_date":30,"updated_date":45,"references":46,"days_to_patch":48},"CVE-2025-26751","alphabetic-pagination-reflected-cross-site-scripting","Alphabetic Pagination \u003C= 3.2.1 - Reflected Cross-Site Scripting","The Alphabetic Pagination plugin for WordPress is vulnerable to Reflected Cross-Site Scripting in all versions up to, and including, 3.2.1 due to insufficient input sanitization and output escaping. This makes it possible for unauthenticated attackers to inject arbitrary web scripts in pages that execute if they can successfully trick a user into performing an action such as clicking on a link.",null,"\u003C=3.2.1","3.2.2","medium",6.1,"CVSS:3.1\u002FAV:N\u002FAC:L\u002FPR:N\u002FUI:R\u002FS:C\u002FC:L\u002FI:L\u002FA:N","Improper Neutralization of Input During Web Page Generation ('Cross-site Scripting')","2025-03-03 21:13:16",[47],"https:\u002F\u002Fwww.wordfence.com\u002Fthreat-intel\u002Fvulnerabilities\u002Fid\u002Fa6cefbdb-a453-4858-af7f-386a75ec592c?source=api-prod",18,{"id":50,"url_slug":51,"title":52,"description":53,"plugin_slug":4,"theme_slug":38,"affected_versions":54,"patched_in_version":55,"severity":56,"cvss_score":57,"cvss_vector":58,"vuln_type":59,"published_date":60,"updated_date":61,"references":62,"days_to_patch":64},"WF-dbda16f5-65c2-47cf-8b06-6aa231b8fd11-alphabetic-pagination","alphabetic-pagination-missing-authorization-to-unauthenticated-arbitrary-options-update","Alphabetic Pagination \u003C= 3.0.7 - Missing Authorization to Unauthenticated Arbitrary Options Update","The Alphabetic Pagination plugin for WordPress is vulnerable to authorization bypass due to a missing capability check on the api_update_settings function in versions up to, and including, 3.0.7. This makes it possible for unauthenticated attackers update settings not limited to those of the plugin.","\u003C=3.0.7","3.0.8","critical",9.1,"CVSS:3.1\u002FAV:N\u002FAC:L\u002FPR:N\u002FUI:N\u002FS:U\u002FC:H\u002FI:H\u002FA:N","Missing Authorization","2022-08-25 00:00:00","2024-01-22 19:56:02",[63],"https:\u002F\u002Fwww.wordfence.com\u002Fthreat-intel\u002Fvulnerabilities\u002Fid\u002Fdbda16f5-65c2-47cf-8b06-6aa231b8fd11?source=api-prod",516,{"slug":66,"display_name":7,"profile_url":8,"plugin_count":67,"total_installs":68,"avg_security_score":27,"avg_patch_time_days":69,"trust_score":70,"computed_at":71},"fahadmahmood",40,32660,237,76,"2026-04-04T05:54:30.075Z",[73,93,114,135,158],{"slug":74,"name":75,"version":76,"author":7,"author_profile":8,"description":77,"short_description":78,"active_installs":79,"downloaded":80,"rating":79,"num_ratings":81,"last_updated":82,"tested_up_to":16,"requires_at_least":17,"requires_php":18,"tags":83,"homepage":88,"download_link":89,"security_score":90,"vuln_count":91,"unpatched_count":29,"last_vuln_date":92,"fetched_at":31},"endless-posts-navigation","Endless Posts Navigation","2.3.0","\u003Cp>It automatically detects the post type where it is implemented and provide the endless navigation from the same taxonomy\u002Fcategory. You don’t need to worry about its order. It automatically manages alphabetical order for next and previous navigation.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Author: \u003Ca href=\"https:\u002F\u002Fwww.androidbubbles.com\u002Fcontact\" rel=\"nofollow ugc\">Fahad Mahmood\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>Project URI: \u003Ca href=\"http:\u002F\u002Fandroidbubble.com\u002Fblog\u002Fwordpress\u002Fplugins\u002Fendless-posts-navigation\" rel=\"nofollow ugc\">http:\u002F\u002Fandroidbubble.com\u002Fblog\u002Fwordpress\u002Fplugins\u002Fendless-posts-navigation\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>License: GPL 3. See License below for copyright jots and tittles.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Detailed description.\u003Cbr \u002F>\nImportant!\u003Cbr \u002F>\nVisit my blog and suggest good features which you want to see in this plugin.\u003C\u002Fp>\n\u003Ch4>Tags\u003C\u002Fh4>\n\u003C\u002Fp>\n\u003Cp>pagination, filtering, alphabet sequence, sorting next previous posts, sorting pages\u003C\u002Fp>\n\u003Cp>Video Tutorials:\u003C\u002Fp>\n\u003Cp>Endless Post Navigation – Normal:\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\u002FgcFlcKJG5aU?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\u003Cp>Endless Post Navigation – Leakage:\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\u002FiDB2ZRQ5Brs?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\u003Ch3>License\u003C\u002Fh3>\n\u003Cp>This WordPress Plugin is free software: you can redistribute it and\u002For modify\u003Cbr \u002F>\nit under the terms of the GNU General Public License as published by\u003Cbr \u002F>\nthe Free Software Foundation, either version 2 of the License, or\u003Cbr \u002F>\nany later version.\u003C\u002Fp>\n\u003Cp>This free software is distributed in the hope that it will be useful,\u003Cbr \u002F>\nbut WITHOUT ANY WARRANTY; without even the implied warranty of\u003Cbr \u002F>\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\u003Cbr \u002F>\nGNU General Public License for more details.\u003C\u002Fp>\n\u003Cp>You should have received a copy of the GNU General Public License\u003Cbr \u002F>\nalong with this software. If not, see http:\u002F\u002Fwww.gnu.org\u002Flicenses\u002Fgpl-2.0.html.\u003C\u002Fp>\n","Endless Posts Navigation is a great plugin to loop your posts\u002Fpages with alphabetic order. It is simple to use.",100,10603,3,"2026-02-05T10:12:00.000Z",[20,84,85,86,87],"alphabetic-posts-navigation","alphabetic-posts-sorting","posts-navigation","posts-sorting","http:\u002F\u002Fandroidbubble.com\u002Fblog\u002Fwordpress\u002Fplugins\u002Fendless-posts-navigation","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fendless-posts-navigation.2.3.0.zip",99,1,"2024-10-18 00:00:00",{"slug":94,"name":95,"version":96,"author":97,"author_profile":98,"description":99,"short_description":100,"active_installs":101,"downloaded":102,"rating":29,"num_ratings":29,"last_updated":103,"tested_up_to":104,"requires_at_least":105,"requires_php":106,"tags":107,"homepage":111,"download_link":112,"security_score":113,"vuln_count":29,"unpatched_count":29,"last_vuln_date":38,"fetched_at":31},"ttt-loadmore","TTT Loadmore","1.1.1","gabrielperezs","https:\u002F\u002Fprofiles.wordpress.org\u002Fgabrielperezs\u002F","\u003Cp>WordPress plugin to load more event with your own template.\u003C\u002Fp>\n\u003Cp>For code contributions please go to https:\u002F\u002Fgithub.com\u002F33themes\u002Fttt-loadmore\u003C\u002Fp>\n\u003Ch3>How to use it\u003C\u002Fh3>\n\u003Cp>\u003Cem>This is the base html:\u003C\u002Fem>\u003C\u002Fp>\n\u003Cpre>\u003Ccode>\u003Ca href=\"#\" data-tttloadmore-do=\"archiveposts\" data-tttloadmore-to=\"#main\" data-tttloadmore-args=\"category:php;\">\n    Load more content\n\u003C\u002Fa>\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Cul>\n\u003Cli>data-tttloadmore-do* is the action to load more content\u003C\u002Fli>\n\u003Cli>data-tttloadmore-to* is where the script put the content after load more posts (the result of the “do” action)\u003C\u002Fli>\n\u003Cli>data-tttloadmore-args* contain all the arguments you want to send to the “do” action\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cem>Then, you have to create an action with the same name of the data-tttloadmore-do\u003C\u002Fem>\u003C\u002Fp>\n\u003Cpre>\u003Ccode>\u003C?php\nfunction loadmore_archiveposts( $page, $args = false ){\n\n    $archiveposts = array(\n        'post_type' => 'post',\n        'post_status' => 'publish',\n        'order' => 'DESC',\n        'orderby' => 'date',\n        'paged' => $page,\n        'ignore_sticky_posts' => 1,\n        'category_name' => $args['category'],\n    );\n    $archiveposts_query = new WP_Query($archiveposts);\n    ?>\n\n    \u003C?php if ($archiveposts_query->have_posts()) : ?>\n        \u003C?php while ($archiveposts_query->have_posts()) : $archiveposts_query->the_post(); ?>\n                \u003C?php get_template_part( 'partials\u002Fcontent', 'content' ); ?>\n        \u003C?php wp_reset_postdata();?>\n        \u003C?php endwhile; ?>\n    \u003C?php endif;?>\n\n    \u003C?\n}\nadd_action('ttt_loadmore_archiveposts','loadmore_archiveposts', 1, 2);\n?>\n\u003C\u002Fcode>\u003C\u002Fpre>\n","WordPress plugin to load more event with your own template.",10,1377,"2015-09-14T09:34:00.000Z","4.3.34","3.7","",[108,109,22,23,110],"core-pagination","loadmore","vertical-pagination","http:\u002F\u002Fwww.33themes.com","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fttt-loadmore.1.1.1.zip",85,{"slug":115,"name":116,"version":117,"author":118,"author_profile":119,"description":120,"short_description":121,"active_installs":122,"downloaded":123,"rating":13,"num_ratings":124,"last_updated":125,"tested_up_to":126,"requires_at_least":127,"requires_php":106,"tags":128,"homepage":132,"download_link":133,"security_score":134,"vuln_count":29,"unpatched_count":29,"last_vuln_date":38,"fetched_at":31},"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,149,"2024-12-19T01:02:00.000Z","6.7.5","4.6",[129,130,22,131],"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":136,"name":137,"version":138,"author":139,"author_profile":140,"description":141,"short_description":142,"active_installs":143,"downloaded":144,"rating":145,"num_ratings":146,"last_updated":147,"tested_up_to":148,"requires_at_least":149,"requires_php":18,"tags":150,"homepage":156,"download_link":157,"security_score":79,"vuln_count":29,"unpatched_count":29,"last_vuln_date":38,"fetched_at":31},"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",[151,152,153,154,155],"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",{"slug":159,"name":160,"version":161,"author":162,"author_profile":163,"description":164,"short_description":165,"active_installs":143,"downloaded":166,"rating":134,"num_ratings":167,"last_updated":168,"tested_up_to":126,"requires_at_least":106,"requires_php":106,"tags":169,"homepage":172,"download_link":173,"security_score":174,"vuln_count":28,"unpatched_count":29,"last_vuln_date":175,"fetched_at":31},"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",[129,170,171,22,159],"page","paginate","https:\u002F\u002Fwordpress.org\u002Fplugins\u002Fwp-paginate\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fwp-paginate.2.2.4.zip",91,"2022-06-16 00:00:00",{"attackSurface":177,"codeSignals":249,"taintFlows":302,"riskAssessment":338,"analyzedAt":352},{"hooks":178,"ajaxHandlers":228,"restRoutes":238,"shortcodes":239,"cronEvents":247,"entryPointCount":248,"unprotectedCount":91},[179,185,189,194,198,203,208,211,215,218,221,225],{"type":180,"name":181,"callback":182,"priority":101,"file":183,"line":184},"filter","wp_title","ap_page_title","inc\\functions.php",17,{"type":180,"name":186,"callback":187,"file":183,"line":188},"posts_join","ap_posts_join",867,{"type":180,"name":190,"callback":191,"priority":192,"file":183,"line":193},"posts_orderby","ap_search_orderby",999,1430,{"type":180,"name":195,"callback":196,"file":183,"line":197},"posts_where","ap_where",1563,{"type":199,"name":200,"callback":201,"file":183,"line":202},"action","pre_get_posts","ap_set_query_order",2068,{"type":199,"name":204,"callback":205,"file":206,"line":207},"admin_enqueue_scripts","register_ap_scripts","index.php",160,{"type":199,"name":209,"callback":205,"file":206,"line":210},"wp_enqueue_scripts",161,{"type":199,"name":212,"callback":213,"file":206,"line":214},"admin_menu","ap_menu",174,{"type":199,"name":204,"callback":216,"priority":90,"file":206,"line":217},"ap_admin_style",179,{"type":199,"name":204,"callback":219,"priority":90,"file":206,"line":220},"ap_pro_admin_style",182,{"type":199,"name":222,"callback":223,"file":206,"line":224},"wp_head","ap_init_actions",189,{"type":180,"name":200,"callback":226,"priority":91,"file":206,"line":227},"ap_pagination",195,[229,234],{"action":230,"nopriv":231,"callback":230,"hasNonce":232,"hasCapCheck":231,"file":233,"line":28},"ap_clear_order_log",false,true,"inc\\logger.php",{"action":235,"nopriv":231,"callback":236,"hasNonce":231,"hasCapCheck":231,"file":206,"line":237},"ap_tax_types","ap_tax_types_callback",175,[],[240,243],{"tag":226,"callback":241,"file":206,"line":242},"ap_pagination_custom",201,{"tag":244,"callback":245,"file":206,"line":246},"ap_results","ap_pagination_results",202,[],4,{"dangerousFunctions":250,"sqlUsage":251,"outputEscaping":257,"fileOperations":29,"externalRequests":29,"nonceChecks":28,"capabilityChecks":28,"bundledLibraries":301},[],{"prepared":248,"raw":91,"locations":252},[253],{"file":254,"line":255,"context":256},"uninstall.php",16,"$wpdb->query() with variable interpolation",{"escaped":258,"rawEcho":259,"locations":260},118,21,[261,265,267,269,271,273,275,276,278,280,282,283,284,286,288,290,291,293,295,297,299],{"file":262,"line":263,"context":264},"inc\\ap_settings.php",132,"raw output",{"file":262,"line":266,"context":264},159,{"file":262,"line":268,"context":264},222,{"file":262,"line":270,"context":264},255,{"file":262,"line":272,"context":264},447,{"file":262,"line":274,"context":264},496,{"file":262,"line":274,"context":264},{"file":262,"line":277,"context":264},595,{"file":262,"line":279,"context":264},604,{"file":262,"line":281,"context":264},627,{"file":262,"line":281,"context":264},{"file":262,"line":281,"context":264},{"file":262,"line":285,"context":264},902,{"file":262,"line":287,"context":264},997,{"file":262,"line":289,"context":264},1010,{"file":262,"line":289,"context":264},{"file":262,"line":292,"context":264},1068,{"file":262,"line":294,"context":264},1082,{"file":262,"line":296,"context":264},1103,{"file":183,"line":298,"context":264},519,{"file":233,"line":300,"context":264},121,[],[303,320,330],{"entryPoint":304,"graph":305,"unsanitizedCount":91,"severity":319},"\u003Cap_settings> (inc\\ap_settings.php:0)",{"nodes":306,"edges":317},[307,312],{"id":308,"type":309,"label":310,"file":262,"line":311},"n0","source","$_GET",1065,{"id":313,"type":314,"label":315,"file":262,"line":292,"wp_function":316},"n1","sink","echo() [XSS]","echo",[318],{"from":308,"to":313,"sanitized":231},"low",{"entryPoint":321,"graph":322,"unsanitizedCount":29,"severity":319},"ap_start_settings_form (inc\\functions.php:2015)",{"nodes":323,"edges":328},[324,327],{"id":308,"type":309,"label":325,"file":183,"line":326},"$_SERVER['REQUEST_URI']",2019,{"id":313,"type":314,"label":315,"file":183,"line":326,"wp_function":316},[329],{"from":308,"to":313,"sanitized":232},{"entryPoint":331,"graph":332,"unsanitizedCount":29,"severity":319},"\u003Cfunctions> (inc\\functions.php:0)",{"nodes":333,"edges":336},[334,335],{"id":308,"type":309,"label":325,"file":183,"line":326},{"id":313,"type":314,"label":315,"file":183,"line":326,"wp_function":316},[337],{"from":308,"to":313,"sanitized":232},{"summary":339,"deductions":340},"The 'alphabetic-pagination' plugin version 3.2.5 exhibits a mixed security posture. While it demonstrates good practices such as a high percentage of SQL queries using prepared statements and properly escaped outputs, there are notable areas of concern. The presence of one AJAX handler without proper authentication checks significantly increases the attack surface and poses a direct risk. Additionally, the plugin has a history of two known CVEs, including a past critical vulnerability for Cross-Site Scripting and Missing Authorization. Although these are currently patched, the pattern suggests a potential for recurring or similar vulnerabilities. The taint analysis, while showing no critical or high severity flows, did identify one flow with unsanitized paths, which warrants attention. Overall, the plugin has strengths in secure coding practices but is weakened by an exposed entry point and a history of serious security flaws.",[341,344,347,350],{"reason":342,"points":343},"AJAX handler without auth checks",8,{"reason":345,"points":346},"Past critical CVE (2025-02-14)",15,{"reason":348,"points":349},"Past medium CVE (type not specified)",5,{"reason":351,"points":349},"Taint flow with unsanitized paths","2026-03-16T19:35:25.760Z",{"wat":354,"direct":368},{"assetPaths":355,"generatorPatterns":359,"scriptPaths":360,"versionParams":363},[356,357,358],"\u002Fwp-content\u002Fplugins\u002Falphabetic-pagination\u002Fap_style.css","\u002Fwp-content\u002Fplugins\u002Falphabetic-pagination\u002Finc\u002Fcss\u002Fap_admin.css","\u002Fwp-content\u002Fplugins\u002Falphabetic-pagination\u002Fap_responsive.css",[],[361,362],"\u002Fwp-content\u002Fplugins\u002Falphabetic-pagination\u002Fjs\u002Falphabetic-pagination.js","\u002Fwp-content\u002Fplugins\u002Falphabetic-pagination\u002Finc\u002Fjs\u002Fap_admin.js",[364,365,366,367],"\u002Fwp-content\u002Fplugins\u002Falphabetic-pagination\u002Fap_style.css?ver=","\u002Fwp-content\u002Fplugins\u002Falphabetic-pagination\u002Fjs\u002Falphabetic-pagination.js?ver=","\u002Fwp-content\u002Fplugins\u002Falphabetic-pagination\u002Finc\u002Fcss\u002Fap_admin.css?ver=","\u002Fwp-content\u002Fplugins\u002Falphabetic-pagination\u002Fap_responsive.css?ver=",{"cssClasses":369,"htmlComments":380,"htmlAttributes":382,"restEndpoints":385,"jsGlobals":386,"shortcodeOutput":389},[370,371,372,373,374,375,376,377,378,379],"ap-list","ap-pagination-list","ap-letter","ap-letter-active","ap-letter-disabled","ap-alphabet-wrap","ap-alphabet-top","ap-alphabet-bottom","ap_pagination_wrapper","ap-results-count",[381],"\u003C!-- KBD END WILL REMOVE .DAT FILES -->",[383,384],"data-ap-filter-post-type","data-ap-target-selector",[],[387,388],"ap_pagination_settings","ap_object",[390,391],"[ap_pagination]","[ap_results]"]