WordPress Infinite Scroll – Ajax Load More


Ajax Load More is the ultimate WordPress infinite scroll plugin for lazy loading posts, single posts, pages, comments and more with Ajax powered queries.

Build complex custom WordPress queries with the Ajax Load More shortcode builder then add the generated shortcode to your page via the content editor or directly into your template files.

Ajax Load More is compatible for endless scrolling with popular eCommerce plugins such as WooCommerce and Easy Digital Downloads.

Get More Information


  • Shortcode Builder – Create your own custom Ajax Load More shortcode by adjusting the various WordPress query parameters in our easy-to-use shortcode builder (see Shortcode Parameters).
  • Query Parameters – Ajax Load More allows you to query WordPress by many different content types. Query by Post Type, Post Format, Date, Category, Tags, Custom Taxonomies, Search Term, Authors and more!
  • Repeater Templates – Edit and extend the functionality of Ajax Load More by creating your own repeater template to match the look and feel of your website (see screenshots).
  • Multiple Instances – You can include multiple instances of Ajax Load More on a single page, post or template.
  • Ajax Filtering – The Ajax Load More custom filtering method will allow you to filter and update your Ajax query results.
  • Multisite Compatibility – Manage repeater templates across all sites in your network.
  • Setting Panel – Customize your version of Ajax Load More by updating various plugin settings.

Check out the website for more information on the features and functionality of Ajax Load More.

What’s New

  • Elementor Add-on – Infinite scroll Elementor Posts Widget and WooCommerce widget content with Ajax Load More.
  • WooCommerce Add-on – Infinite scroll WooCommerce products without updating a line of template code.
  • Pro Bundle – Access to all premium Ajax Load More add-ons in a single installation.
  • Filters Add-on – The Filters add-on provides front-end and admin functionality for building and managing Ajax filters.
  • Advanced Custom Fields – Compatibility and integration added for infinite scrolling Flexible Content, Gallery, Relationship and Repeater fields for Advanced Custom Fields.
  • Masonry – Built-in support and functionality for Masonry layouts.
  • Progress Bars – Display a Progress Bar load indicator with each Ajax request.
  • Scroll Container – Constraining infinite scroll to a parent container.

Content Types

Ajax Load More can infinite scroll almost any content type WordPress offers – from blog posts to multipage content to WooCommerce products – Ajax Load More can handle it all.

Check out the examples below:

*Add-on required


Ajax Load More accepts a variety of query and styling parameters that are passed to WordPress via shortcode or PHP function.

These parameters allow you to customize the content of your infinite scroll by selecting query parameters such as Post Types, Taxonomies, Categories, Tags, etc… you can also control interactive properties such as button labels, scrolling options and transition styles.

View Parameters

Shortcode Builder

The Ajax Load More Shortcode Builder provides an intuitive and easy-to-use admin interface that transforms complex WordPress queries into manageable shortcodes.

View Shortcode Builder

Example Ajax Load More Shortcode

[ajax_load_more post_type="post, portfolio" posts_per_page="6" button_label="Load More"]

Examples & Demos

  • Default – Out of the box functionality and styling.
  • Advanced Custom Fields – Infinite scroll Advanced Custom Fields data with Ajax Load More.
  • Attachments – Endless scroll post attachments.
  • CSS Grid – Rendering Ajax Load More listings with CSS GridRe.
  • Destroy After – Remove Ajax Load More functionality after ‘n’ number of pages.
  • Event Listing – Ordering and listing events by custom field date.
  • Filtering – Reset and filter an Ajax Load More instance.
  • Infinite Scroll – A look at the new loading functionality and styles.
  • Images Loaded – Download images before displaying ajax loaded content.
  • Masonry – Creating a flexible grid layout with Masonry JS.
  • Multiple Instances – Include multiple Ajax Load More’ on a single page.
  • Paging URLs – Generate unique paging URLs for every Ajax Load More query with the SEO add-on.
  • Pause Loading – Posts will not load until initiated by the user.
  • Preloaded Posts – Easily preload an initial set of posts before completing any Ajax requests to the server.
  • Progress Bar – Display a progress bar load indicator with each Ajax request.
  • Search Results – Returning results based on search terms.
  • Scroll Container – Constrain Ajax Load More to a parent container.
  • SEO & Paging – Combine these two add-ons to create one powerful navigation system.
  • Slideshow Gallery – Create a gallery of posts with Ajax Load More and the Paging add-on.
  • Table Layout – Ajax Load More will display query results in a table format.

See All Examples

Note: The Custom Repeater Add-On has been installed for use on each of our product demos.


The following add-ons are available to increase the functionality of Ajax Load More.

  • Cache: Improve website performance by caching the results of Ajax server requests.
  • Call to Actions: Extend Ajax Load More with advertisement and call to action content blocks.
  • Comments: Load and display WordPress blog comments using the core Ajax Load More infinite scroll functionality.
  • Custom Repeaters: Create, modify and delete repeater templates as you need them with absolutely zero restrictions.
  • Elementor: Add infinite scroll or load more to your Elementor Posts and WooCommerce listing widgets with Ajax Load More and the intuitive Elementor Widget Connector.
  • Filters: Front-end and admin functionality for creating, managing and displaying Ajax Load More filters.
  • Layouts: Predefined responsive layouts for Ajax Load More repeater templates.
  • Next Page: Infinite scroll multipage WordPress content with Ajax Load More and the Next Page add-on.
  • Paging: Replace the default lazy load/infinite scroll functionality of Ajax Load More with a numbered navigation system.
  • Preloaded: Load an initial set of posts before sending any Ajax requests to your server.
  • SEO: Generate unique paging URLs with each Ajax Load More query.
  • Single Post: Enable infinite scrolling of single posts on your WordPress post templates.
  • Theme Repeaters: Manage Ajax Load More repeater templates from within your current theme directory.
  • Users: Lazy loading WordPress Users with Ajax Load More.
  • WooCommerce: Infinite scroll WooCommerce products with Ajax Load More.


The following free extensions are available to provide compatibility with popular WordPress plugins and core features.

  • Advanced Custom Fields: Display field type data with Ajax Load More.
  • Relevanssi: Display Relevanssi search results with Ajax Load More.
  • REST API: Enable compatibility with the WordPress REST API.
  • SearchWP: Display SearchWP query results with Ajax Load More.
  • Term Query: Infinite scroll WordPress Terms.

Callback Functions

Ajax Load More dispatches callbacks during various stages in the plugins lifecycle. Callback functions are dispatched directly from core Ajax Load More or one of the various add-ons.

View All Callback Functions

Filter Hooks

Ajax Load More has a variety of WordPress filters in place that enable users to hook into Ajax Load More to insert or modify data.

See All Filters


Ajax Load More passes the following PHP variables to each repeater template – these template variables can help you style and transform your repeater templates.

  • $alm_current – Returns the current item number in the current Ajax Load More loop and will reset to zero with every ‘Load More’ action.
  • $alm_page – Returns the current page number.
  • $alm_item – Returns the current item number within your loop.
  • $alm_found_posts – Returns the total number of posts found within the entire WordPress query.

Plugin Links

Please Review Ajax Load More!

Your reviews make a big difference! Please consider taking the time to review my plugin. Your ratings and reviews help the plugin grow and provide the motivation needed to keep pushing it forward.

Leave a Review


  • Settings screen
  • Available Repeater Templates
  • Custom Repeaters Add-On
  • Shortcode Builder
  • Content Editor shortcode icon
  • Edit Page Shortcode Builder
  • Shortcode and implementation examples


How to install Ajax Load More.

Using The WordPress Dashboard

  1. Navigate to the ‘Add New’ in the plugins dashboard
  2. Search for ‘Ajax Load More’
  3. Click ‘Install Now’
  4. Activate the plugin on the Plugin dashboard

Uploading in WordPress Dashboard

  1. Navigate to the ‘Add New’ in the plugins dashboard
  2. Navigate to the ‘Upload’ area
  3. Select ajax-load-more.zip from your computer
  4. Click ‘Install Now’
  5. Activate the plugin in the Plugin dashboard

Using FTP

  1. Download ajax-load-more.zip
  2. Extract the ajax-load-more directory to your computer
  3. Upload the ajax-load-more directory to the /wp-content/plugins/ directory
  4. Activate the plugin in the Plugin dashboard

Συχνές Ερωτήσεις

What are the steps to getting Ajax Load More to display on my website

  1. Create your shortcode
  2. Add the shortcode to your page, by adding it through the content editor or placing it directly within one of your template files.
  3. Load a page with your shortcode in place and watch Ajax Load More fetch your posts.

Read the Implementation Guide

What are my server requirements?

Your server must be able to read/write/create files. Ajax Load More creates the default repeater on plugin activation and in order to modify the output we are required to write to the file as well.

Is the ajax functionality secure?

Yes, Ajax Load more uses admin-ajax and nonces in order to protect URLs and forms from being misused.

Can I make modifications to the plugin code?

Sure, but please be aware that if modifications are made it may affect future updates of the plugin.

Can I modify the repeater template?

Yes, visit the Repeater Template section in your WordPress admin.

How are my repeater templates saved?

Repeater template data is saved into your WordPress database as well as written directly to a repeater template .php file in the ajax-load-more plugin directory.

Can I use custom fields in a repeater?

Yes, but you will need to define $post at the top of the repeater before requesting your custom fields. Like so:
global $post;theImplementationGuidehttpstheImplementationGuidehttpstheImplementationGuidehttpstheImplementationGuidehttpstheImplementationGuidehttpstheImplementationGuidehttpstheImplementationGuidehttpstheImplementationGuidehttpstheImplementationGuidehttpstheImplementationGuidehttpstheImplementationGuidehttps

Which browsers are supported?

  • Firefox (Mac, PC, iOS)
  • Chrome (Mac, PC, iOS, Android)
  • Safari (Mac, iOS)
  • Opera
  • Android
  • IE11+

How Can You Contribute?

Issues and pull requests can be submitted via GitHub.


26 Νοεμβρίου 2021
https://electric-en.com I am using the plugin. met all my expectations. Thank you it works flawlessly.
20 Νοεμβρίου 2021
Plugin is great but the premium version is far too expensive, as you have to buy an entire addon bundle instead of what you want. All I wanted was access to the repeater templates and if you think I am paying $149.00 yearly for that you must be crazy! Subscription based software models are also pretty shitty. I don't buy sub based software just out of principle. Plenty of other companies just give update support for x amount of years when you buy which makes more sense and when it expires you don't get updates anymore when the period expires. I'm only rating 5 star because the free version is very good. If I needed anything that was locked behind the paywall I would just uninstall and get another plugin. If I had my heart set on this one I'd just pay someone to modify the plugin which would be infinitely cheaper than subscribing to yearly payments. If repeater templates were like $30 per extra template or something I'd have bought some extra templates and probably other people would too. Just a suggestion. Otherwise the free version is great, nice work, very good plugin. The pricing and non modular nature of the ability to pay for the pro version does leave a bitter taste though.
24 Σεπτεμβρίου 2021
Really good plugin with good documentation. It works perfectly!
11 Οκτωβρίου 2021
5 star support. My site slowed down a lot while using this plugin, so I disabled it (I run ads so I understand that this can be something specific to my situation). Still... Darren is great and shows that he cares about his customers. It's rare to get this level of personal help with settings things up.
Ανάγνωση όλων των 261 κριτικών

Συνεισφέροντες & Προγραμματιστές

“WordPress Infinite Scroll – Ajax Load More” είναι λογισμικό ανοιχτού κώδικα. Οι παρακάτω έχουν συνεισφέρει στη δημιουργία του.


Σύνοψη αλλαγών – September 15, 2021

  • FIX – Fixed possible issue with page location and document title being passed incorrectly to Google Analytics when using the Single Posts add-on.
  • FIX – Added various admin fixes for WordPress 5.8.
  • FIX – Removed PHP warnings that could appear on initial plugin installation if WP_DEBUG is enabled.
  • FIX – Attempted fix of license activation/deactivation problems some users have experienced.
  • NEW – Added new almWooCommerceLoaded and almElementorLoaded JavaScript callback function that is triggered after a successful Ajax load when using the WooCommerce and Elementor add-ons.

5.5.0 – July 8, 2021

  • UPDATE – Added support for image lazy loading in the WooCommece and Elementor add-ons. If a data-src attribute is present on an image in the Ajaz results, Ajax Load More will now automatically load the image.
  • FIX – Fixed PHP warning that could appear if Ajax Load More settings had not been previously been updated.
  • FIX – Fixed issue with Call to Actions settings not appearing in Shortcode Builder if that was the only add-on installed.
  • FIX – Fixed issue where extensions may not appear in Shortcode Builder.
  • FIX – Fixed issue where ALM_DEBUG was always set to true when using Elementor or WooCommerce add-ons.

5.4.5 – April 20, 2021

  • NEW – Added new lazy_images parameter that provides a potential fix for images not loading when other plugins/scripts are hooked into the sites image loading process.
  • NEW – Added filter that can disable the <noscript/> functionality of the SEO and Filters add-ons.
    add_filter( ‘alm_disable_noscript_{alm_id}’, ‘__return_true’ );
  • FIX – Added fix for issue where Load More button would not disable if zero posts were available on initial page load.
  • FIX – Updated fix for postcount === undefined JavaScript error when an issue occurs in a Repeater Template and the return data is corrupt.
  • UPDATE – Updated Masonry parameters and how they are passed and handled inside Ajax Load More.
  • UPDATE – Admin UI/UX updates and refresh.

5.4.4 – March 31, 2021

  • FIX – Fixed issue when filtering and updating the Load More button label.
  • FIX – Fixed JS error when using transition_container="false" and transition="false" in the same shortcode.
  • FIX – Fixed ‘Cannot read property postcount of undefined’ error that can appear. The underlying still exists and I’ve been unable to solve it but the error is now surpressed and Ajax Load More will function as expected. A console warning will be rendered in it’s place.
  • UPDATE – Updated core ALM button CSS selectors.
  • UPDATE – Admin UI/UX updates to Shortcode Builder and Settings screen.
  • UPDATE – Attempting to fix with license activation script to prevent issues with wp_remote_post.
  • UPDATE – Added console warning if Ajax Load More is not able to access meta object in Ajax response.

5.4.3 – February 11, 2021

  • FIX – Fixed JS error in shortcode builder when a site was missing tags or categories.
  • FIX – Various admin UX/UX updates.
  • UPDATE – Various fixes and updates to support PHP 8+.
  • UPDATE – Added ['X-Requested-With'] = 'XMLHttpRequest' headers to each Ajax request so the server side functions can determine the type of request.
  • UPDATE – Updated axios library to latest version.
  • UPDATE – Varius admin updates. – January 3, 2021

  • HOTFIX – Fixed issue with non-functioning Shortcode Builder on sites without tags or categories present.

5.4.2 – January 3, 2021

  • NEW – Added new vars parameter that allows for passing data into Hooks and Repeater Templates.
    Variables can accessed in Repeater Templates by accessing the $args array. This will pull in all query and variable parameters into an array.
    [ajax_load_more vars=”var1:The value of var1 value;var2:The value for #2″]
    echo $args[‘alm_vars’]; // Prints an array of key value pairs. See docs for more info.
  • UPDATE – Various admin UI/UX updates and layout improvements.
  • FIX – Fixed issue with Single Posts add-on custom query returning all posts if the query was empty.
  • FIX – Fixed issue with height of Ajax Load More when filtering with Masonry and zero results are returned.
  • FIX – Fixed issue in Shortcode builder caused by updated Select2 JS.

5.4.1 – November 25, 2020

UPGRADE NOTICE for Elementor Add-on Users
We have updated the Elementor add-on settings for how Ajax Load More determines the next page of content during infinite scroll.
Ajax Load More no longer uses the Numbers pagination type, please follow the steps below to update your widget after update.

  1. Visit your page in Elementor.
  2. Locate the Posts Widget.
  3. Update the Pagination type in the Posts Widget from Numbers to Numbers + Previous/Next or just Previous/Next.
  4. View the Guide if you require addtional information.


  • NEW – Added new scroll_direction parameter that allows for horizontal scrolling of Ajax Load More by setting scroll_direction="horizontal" in your shortcode or alm_render method.
    • To horizontal scroll ALM you MUST use a scroll_container as seen in the Scroll Direction example.
    • Horizontal scroll uses a custom Flexbox layout for aligning items.
    • RTL support will be coming soon.
  • FIX – Fixed issue with Single Posts and the Table of Contents functionality duplicating the first post entry in the list.
  • FIX – Added fix for Fatal Error that may appear in the Shortcode class on WooCommerce Product Attribute archive pages.

5.4.0 – November 11, 2020

  • NEW – Added required functionality for new Elementor add-on.
  • NEW – Added new alm_disable_noscript filter to disable all <noscript/> tags generated by ALM. add_filter( 'alm_disable_noscript', '__return_true' );
  • UPDATE – Updated Pace.js library that is used for progress bar functionality.

5.3.0 – April 22, 2020

  • NEW – Added support and core functionality for new WooCommerce add-on.
  • NEW – Added new White & Light Grey loading style.
  • NEW – Added loading preview toggle on ALM Settings screen.
  • NEW – Added alm_a11y_focus filter to allow users to remove the focus accessibility feature of Ajax Load More.
  • UPDATE – Updated loading animations and various color combinations.
  • UPDATE – Removed Comment Reply hotfix script as this fix was patched in WordPress core.
  • FIX – Fixed issue with almFilterComplete callback not triggering.
  • FIX – Fixed issue with initial Paging add-on load not executing JavaScript in Repeater Templates.

5.2.0 – March 13, 2020

  • NEW – Added new Table of Contents functionality. Table of Contents creates a pagination anchor links with every page loaded via Ajax Load More.
  • NEW – Added support for new Term Query extension.
  • UPDATE – Added support for Post Type archives in the Archives integration.
  • UPDATE – Updated .alm-listing CSS styles to better integrate with WooCommerce.
  • UPDATE – Added new Single Post implementation technique.

5.1.2 – June 24, 2019

  • NEW – Added direct WooCommerce integration using the woocommerce shortcode parameter. Blog post and docs coming soon how to use this new parameter with archive and product listing pages.
  • FIX – Fixed issue with element scroll and auto-focus in iOS and Android devices.
  • UPDATE – Removing REST API code introduced in 5.1 that caused issues for some users. Please make sure you clear your site cache and any combined JavaScript. – May 7, 2019

  • UPDATE – After the 5.1.0 launch I discovered an issue with the REST API and WooCommerce. I have reverted the default REST API Usage until I can sort this out. 😢

5.1.0 – May 7, 2019

Ajax Load More can now use the WordPress REST API as the default for Ajax requests – this includes all add-ons and extensions.
Users that wish to continue using admin-ajax.php for Ajax requests can disable the REST API from Ajax Load More > Settings > Global Settings in your WordPress admin.

For backwards compatibility, all users running WordPress version 4.7 or lower will default to using admin-ajax.php.

Please update all your add-ons and extensions when you update Ajax Load More as this release contains breaking changes.

What’s New in 5.1.0

  • NEW – ALM now uses the REST API for all Ajax queries 👏. This includes all add-ons and extensions.
  • NEW – Added new Results Text display for displaying the current page number to users. view example
  • NEW – Added custom JavaScript fix for reply links in Comment query causing page refresh.
  • NEW – Added custom WP_Query parameter, alm_query that can be used in hooks/filters to modify the current query.
  • UPDATE – Added aria attributes and focus position after Ajax load to improve plugin accessibility.
  • FIX – Fixed issue with images not displaying in Safari when transition_container="false" is set.
  • FIX – Fixed issue where Load More button was not hiding after destory_after value was reached.
  • FIX – Fixed issue with meta_value shortcode parameter. Passing zero as a value was returning false and not the number.
  • FIX – Fixed IE11 issue where filtering was not working with camelCase data attributes.

5.0.0 – March 8, 2019

4.0 – November 5, 2018

2.0 – June 20, 2014

  • Ajax Load More