=== Ajax Load More – Infinite Scroll, Lazy Load & Load More ===
Contributors: dcooney, connekthq
Donate link: https://connekthq.com/donate/
Tags: infinite scroll, load more, lazy load, endless scroll, ajax load more
Requires at least: 5.0
Requires PHP: 5.6
Tested up to: 6.9
Stable tag: 7.7.2
License: GPLv2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html

Add infinite scroll, lazy loading, and load more buttons to posts, pages, and WooCommerce products — fast and fully customizable for WordPress.

== Description ==

Ajax Load More is the most powerful **infinite scroll**, **lazy load**, and **load more** plugin for WordPress. Use it to automatically load posts, pages, custom post types, comments, and WooCommerce products without refreshing the page.

Build custom WordPress queries visually with the Ajax Load More **Query/Shortcode Builder**, then embed them anywhere using blocks, shortcodes, or template tags.

Ajax Load More is developer-friendly, performance-optimized, and compatible with popular plugins like WooCommerce, Advanced Custom Fields, and Elementor.

&rarr; [Get More Information](https://connekthq.com/plugins/ajax-load-more/)

### Features

-  **Query/Shortcode Builder** - Create a custom Ajax Load More query in seconds by adjusting various WordPress query parameters included with the inuitive shortcode builder.
-  **Query Parameters** - Query WordPress by many different content types. Query by Post Type, Category, Tags, Custom Taxonomies, Search Term, Date Query, Authors and more!
-  **Ajax Filtering** - The Ajax Load More [custom filtering](https://connekthq.com/plugins/ajax-load-more/examples/filtering/) method will allow you to filter and update your Ajax query results.
-  **Templates** - Edit and extend the functionality of Ajax Load More by creating your own template to match the look and feel of your website.
-  **Multiple Instances** - Include multiple instances of Ajax Load More on a single page, post or template.
-  **Multisite Compatibility** - Manage Repeater Templates across all sites in your network.
-  **Setting Panel** - Customize Ajax Load More by configuring the various plugin settings.

Check out the **[website](https://connekthq.com/plugins/ajax-load-more/)** for more information on the features and functionality of Ajax Load More.

### Why Ajax Load More is the Best Infinite Scroll Plugin for WordPress

Ajax Load More differs from the other WordPress infinite scroll plugins because with ALM, you create the query for displaying the data. This gives you full control over the content you are loading and displaying to your users.

### What's New

-  **[Filters Add-on](https://connekthq.com/plugins/ajax-load-more/add-ons/filters/)** - The Filters add-on provides front-end and admin functionality for building and managing Ajax based filters and facets.
-  **[Query Loop](https://connekthq.com/plugins/ajax-load-more/add-ons/query-loop/)** - Enable infinite scroll or load more functionality for the WordPress Query Loop block.
-  **[Pro Bundle](https://connekthq.com/plugins/ajax-load-more/pro/)** - Access to all premium Ajax Load More add-ons in a single installation.
-  **[Next Page Add-on](https://connekthq.com/plugins/ajax-load-more/add-ons/next-page/)** - Infinite scroll multi-page WordPress content with Ajax Load More.
-  **[Advanced Custom Fields](https://connekthq.com/plugins/ajax-load-more/examples/advanced-custom-fields/)** - Compatibility and integration added for infinite scrolling Flexible Content, Gallery, Relationship and Repeater fields for Advanced Custom Fields.
-  **[Progress Bars](https://connekthq.com/plugins/ajax-load-more/examples/progress-bar/)** - Display a Progress Bar load indicator with each Ajax request.
-  **[Scroll Container](https://connekthq.com/plugins/ajax-load-more/examples/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:

-  [Standard Posts](https://connekthq.com/plugins/ajax-load-more/examples/default/)
-  [Custom Post Types](https://connekthq.com/plugins/ajax-load-more/examples/masonry/)
-  [Pages](https://connekthq.com/plugins/ajax-load-more/examples/search-results/)
-  [Multipage Posts & Pages](https://connekthq.com/plugins/ajax-load-more/add-ons/next-page/next-page-default/)
-  [Single Posts](https://connekthq.com/ajax-load-more-posts/alm-post-example/)
-  [Comments](http://examples.connekthq.com/alm-comments/example-post/)
-  [Advanced Custom Fields](https://connekthq.com/plugins/ajax-load-more/examples/advanced-custom-fields/)

### Parameters

Ajax Load More accepts a variety of WordPress query and display parameters that are passed to WordPress via shortcode or [PHP function/Template Tag](https://connekthq.com/plugins/ajax-load-more/docs/implementation-methods).

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

&rarr; [View Parameters](https://connekthq.com/plugins/ajax-load-more/docs/shortcode-parameters/)

### Query/Shortcode Builder

The Ajax Load More [Query/Shortcode Builder](https://connekthq.com/plugins/ajax-load-more/docs/shortcode-builder/) provides an intuitive and easy-to-use admin interface that transforms complex WordPress queries into manageable shortcodes.

&rarr; [View Shortcode Builder](https://connekthq.com/plugins/ajax-load-more/docs/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](https://connekthq.com/plugins/ajax-load-more/examples/default/)** - Out of the box functionality and styling.
-  **[Advanced Custom Fields](https://connekthq.com/plugins/ajax-load-more/examples/advanced-custom-fields/)** - Infinite scroll Advanced Custom Fields data with Ajax Load More.
-  **[Attachments](https://connekthq.com/plugins/ajax-load-more/examples/attachments/)** - Endless scroll post attachments.
-  **[CSS Grid](https://connekthq.com/plugins/ajax-load-more/examples/css-grid/)** - Rendering Ajax Load More listings with CSS GridRe.
-  **[Destroy After](https://connekthq.com/plugins/ajax-load-more/examples/destroy-after/)** - Remove Ajax Load More functionality after 'n' number of pages.
-  **[Event Listing](https://connekthq.com/plugins/ajax-load-more/examples/event-listing/)** - Ordering and listing events by custom field date.
-  **[Filtering](https://connekthq.com/plugins/ajax-load-more/examples/filtering/)** - Reset and filter an Ajax Load More instance.
-  **[Facet Filtering](https://connekthq.com/plugins/ajax-load-more/add-ons/filters/facet-filtering/)** - Implement a faceted search and filter experience for Ajax Load More
-  **[Infinite Scroll](https://connekthq.com/plugins/ajax-load-more/examples/infinite-scroll/)** - A look at the new loading functionality and styles.
-  **[Images Loaded](https://connekthq.com/plugins/ajax-load-more/examples/images-loaded/)** - Download images before displaying ajax loaded content.
-  **[Masonry](https://connekthq.com/plugins/ajax-load-more/examples/masonry/)** - Creating a flexible grid layout with Masonry JS.
-  **[Multiple Instances](https://connekthq.com/plugins/ajax-load-more/examples/multiple-instances/)** - Include multiple Ajax Load More' on a single page.
-  **[Paging URLs](https://connekthq.com/plugins/ajax-load-more/examples/paging-urls/)** - Generate unique paging URLs for every Ajax Load More query with the SEO add-on.
-  **[Pause Loading](https://connekthq.com/plugins/ajax-load-more/examples/pause-loading/)** - Posts will not load until initiated by the user.
-  **[Preloaded Posts](https://connekthq.com/plugins/ajax-load-more/examples/pause-loading/)** - Easily preload an initial set of posts before completing any Ajax requests to the server.
-  **[Progress Bar](https://connekthq.com/plugins/ajax-load-more/examples/progress-bar/)** - Display a progress bar load indicator with each Ajax request.
-  **[Search Results](https://connekthq.com/plugins/ajax-load-more/examples/search-results/)** - Returning results based on search terms.
-  **[Scroll Container](https://connekthq.com/plugins/ajax-load-more/examples/scroll-container/)** - Constrain Ajax Load More to a parent container.
-  **[SEO & Paging](https://connekthq.com/plugins/ajax-load-more/examples/seo-paging-add-ons/)** - Combine these two add-ons to create one powerful navigation system.
-  **[Slideshow Gallery](https://connekthq.com/plugins/ajax-load-more/examples/slideshow-gallery/)** - Create a gallery of posts with Ajax Load More and the Paging add-on.
-  **[Table Layout](https://connekthq.com/plugins/ajax-load-more/examples/table/)** - Ajax Load More will display query results in a table format.

&rarr; [See All Examples](https://connekthq.com/plugins/ajax-load-more/examples/)

**Note**: The [Templates Add-On](https://connekthq.com/plugins/ajax-load-more/templates/) has been installed for use on each of our product demos.

[youtube https://www.youtube.com/watch?v=EQ57i6dkOew]

### Who Uses Ajax Load More?

Ajax Load More is perfect for developers, bloggers, and store owners who want to:

- Improve user experience by reducing page load times.
- Increase page views and ad revenue by keeping users on the page longer.
- Create a modern, seamless browsing experience.
- Simplify navigation on content-heavy sites.
- Enhance the look and feel of their website with custom templates and layouts.
- Easily integrate infinite scroll into any WordPress theme or plugin.

### Add-ons

The following [add-ons](https://connekthq.com/plugins/ajax-load-more/add-ons/) are available to etend and enhance the functionality of Ajax Load More.

-  **[Cache](https://connekthq.com/plugins/ajax-load-more/add-ons/cache/)**: Improve website performance by caching the results of Ajax server requests.
-  **[Call to Actions](https://connekthq.com/plugins/ajax-load-more/add-ons/call-to-actions/)**: Extend Ajax Load More with advertisement and call to action content blocks.
-  **[Comments](https://connekthq.com/plugins/ajax-load-more/add-ons/comments/)**: Load and display WordPress blog comments using the core Ajax Load More infinite scroll functionality.
-  **[Elementor](https://connekthq.com/plugins/ajax-load-more/add-ons/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](https://connekthq.com/plugins/ajax-load-more/add-ons/filters/)**: Front-end and admin functionality for creating, managing and displaying Ajax Load More filters.
-  **[Layouts](https://connekthq.com/plugins/ajax-load-more/add-ons/layouts/)**: Predefined responsive layouts for Ajax Load More repeater templates.
-  **[Next Page](https://connekthq.com/plugins/ajax-load-more/add-ons/next-page/)**: Infinite scroll multipage WordPress content with Ajax Load More and the Next Page add-on.
-  **[Paging](https://connekthq.com/plugins/ajax-load-more/add-ons/paging/)**: Replace the default lazy load/infinite scroll functionality of Ajax Load More with a numbered navigation system.
-  **[Preloaded](https://connekthq.com/plugins/ajax-load-more/add-ons/preloaded/)**: Load an initial set of posts before sending any Ajax requests to your server.
-  **[Query Loop](https://connekthq.com/plugins/ajax-load-more/add-ons/query-loop/)**: Infinite scroll the core WordPress Query Loop block
-  **[SEO](https://connekthq.com/plugins/ajax-load-more/add-ons/search-engine-optimization/)**: Generate unique paging URLs with each Ajax Load More query.
-  **[Single Post](https://connekthq.com/plugins/ajax-load-more/add-ons/single-post/)**: Enable infinite scrolling of single posts on your WordPress post templates.
-  **[Templates](https://connekthq.com/plugins/ajax-load-more/add-ons/templates/)**: Create and manage Repeater Templates on demand, as well as load templates directly from your theme directory.
-  **[WooCommerce](https://connekthq.com/plugins/ajax-load-more/add-ons/woocommerce/)**: Infinite scroll WooCommerce products with Ajax Load More.

### Ajax Load More Pro

The Ajax Load Pro bundle that provides access to all current and future Ajax Load More add-ons in a single installation! Save over 60% when you purchase the Pro bundle.

&rarr; [Update to Pro](https://connekthq.com/plugins/ajax-load-more/pro/)

### Extensions

The following FREE [extensions](https://connekthq.com/plugins/ajax-load-more/extensions/) are available to provide compatibility with popular WordPress plugins and core features.

-  **[Advanced Custom Fields](https://connekthq.com/plugins/ajax-load-more/extensions/advanced-custom-fields/)**: Display field type data with Ajax Load More.
-  **[Relevanssi](https://connekthq.com/plugins/ajax-load-more/extensions/relevanssi/)**: Display Relevanssi search results with Ajax Load More.
-  **[REST API](https://connekthq.com/plugins/ajax-load-more/extensions/rest-api/)**: Enable compatibility with the WordPress REST API.
-  **[SearchWP](https://connekthq.com/plugins/ajax-load-more/extensions/searchwp/)**: Display SearchWP query results with Ajax Load More.
-  **[Term Query](https://connekthq.com/plugins/ajax-load-more/extensions/terms/)**: Infinite scroll WordPress Terms.
-  **[Users](https://connekthq.com/plugins/ajax-load-more/extensions/users/)**: Lazy loading WordPress Users with Ajax Load More.

### 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.

&rarr; [View All Callback Functions](https://connekthq.com/plugins/ajax-load-more/docs/callback-functions/)

### Filter Hooks

Ajax Load More has a variety of WordPress [filters](https://connekthq.com/plugins/ajax-load-more/docs/filter-hooks/) in place that enable users to hook into Ajax Load More to insert or modify data.

&rarr; [See All Filters](https://connekthq.com/plugins/ajax-load-more/docs/filter-hooks/)

### Variables

Ajax Load More passes the following PHP **[variables](https://connekthq.com/plugins/ajax-load-more/docs/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

-  [Official Website](https://connekthq.com/ajax-load-more/)
-  [Documentation](https://connekthq.com/plugins/ajax-load-more/docs/)
-  [Premium Add-ons](https://connekthq.com/plugins/ajax-load-more/add-ons/)
-  [Free Extensions](https://connekthq.com/plugins/ajax-load-more/extensions/)
-  [Github](https://github.com/dcooney/wordpress-ajax-load-more/)

### Please Review Ajax Load More!

Your reviews make a big difference! Please consider taking the time to [review my plugin](https://wordpress.org/support/view/plugin-reviews/ajax-load-more). Your ratings and reviews help the plugin grow and provide the motivation needed to keep pushing it forward.

&rarr; [Leave a Review](https://wordpress.org/support/plugin/ajax-load-more/reviews/#new-post)

== Frequently Asked Questions ==

= 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.

&rarr; [Read the Implementation Guide](https://connekthq.com/plugins/ajax-load-more/docs/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? =

-  Chrome (Mac, PC, iOS, Android)
-  Firefox (Mac, PC, iOS)
-  Safari (Mac, iOS)
-  Android
-  MS Edge

= How Can You Contribute? =
Issues and pull requests can be submitted via [GitHub](https://github.com/dcooney/wordpress-ajax-load-more).

---

== Installation ==

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

== Screenshots ==

1. Settings: Customize Ajax Load More by configuring the various plugin settings.
2. Repeater Templates: Manage the front-end display and styling of Ajax loaded content.
3. Templates: Unlock the ability to create an infinite number of Repeater Templates with the Templates add-on.
4. Shortcode Builder: Create complex WordPress queries in seconds using the intuitive Shortcode Builder.
5. Implementation: Insert the Ajax Load More shortcode directly into the WordPress block editor or a theme template file.

== Changelog ==

= 7.7.2 - December 11, 2025 =
* UPDATE: Updated SinglePosts fetch to use REST API endpoint to support custom post types.
* Updated Axios and other project dependencies to latest versions.
* UPDATE: WordPress 6.9 compatibility updates.
* FIX: Added fix for touchstart event listener to use passive option for better performance on touch devices.

= 7.7.1 - November 26, 2025 =
* UPDATE: Added cache support to REST API queries.
* UPDATE: Various code cleanup and refactoring.

= 7.7.0 - November 12, 2025 =
* UPGRADE NOTICE: Cache users must update to Cache 3.0 or greater when updating core Ajax Load More or the cache will no longer function.
* NEW: Added required updates and new functionality for new Cache add-on 3.0.
* UPDATE: Code cleanup and organization throughout core plugin.

= 7.6.3 - October 31, 2025 =
* HOTFIX: Fixed issue with Preloaded and Filter add-on facets not initializing correctly on page load.

= 7.6.2 - October 6, 2025 =
* FIX: Fixed issue with License page displaying incorrect products in some instances.
* UPDATE: Various UI/UX updates and improvements.

= 7.6.1 - September 17, 2025 =
* UPDATE: Added functionality required for latest Filters add-on updates.
* UPDATE: Various security fixes.

= 7.6.0.2 - September 13, 2025 =
* UPDATE: Additional tweaks and improvements to normalize the new loading styles.

= 7.6.0.1 - September 12, 2025 =
* NEW: Further optimization and modernized the Load More button and Infinite Scroll styles/animations with new SVG based spinners.
* UPDATE: Removed `button_loading_label` and `prev_button_loading_label` parameters as these are no longer in used with the new loader styles.

= 7.6.0 - August 18, 2025 =
* NOTICE: This Ajax Load More update includes to the button animations and loading styles. It's possible that your existing loading style may have be affected.
* NEW: Modernized the Load More button and Infinite Scroll styles/animations with new SVG based spinners.
* UPDATE: Automatically set `pause_override` to true if loading style is infinite.
* UPDATE: Removed `.more` classname from Ajax Load More button.
* UPDATE: Modernized and cleaned up CSS for various other ALM elements and features.
* FIX: Fixed issue with Query Loop add-on loading standard Ajax Load More in Block Editor due to changes in the Block Editor.
* FIX: Fixed accessibility issue when moving user focus with Preloaded active.
* FIX: Fixed issue with new Templates add-on throwing a PHP error if a template does not exist.

= 7.5.0 - July 23, 2025 =
* NEW: Added required updates for the new Templates add-on.
* FIX: Fixed template issue where alias was not live updating in the Templates admin.
* UPDATE: Various UI/UX updates, bug fixes, and improvements.

= 7.4.2 - June 10, 2025 =
* FIX: Fixed issue with registering the load_text_domain() function.
* UPDATE: Updated functions to get the querystring with the SEO and Single Posts Add-on. [DONE]
* UPDATE: Various updates UI/UX updates to the core plugin.

= 7.4.1 - June 6, 2025 =
* UPDATE: Updated license handling functionality to reduce failed attempted to activate licenses.
* UPDATE: Various code cleanup and UI updates throughout the plugin.
* UPDATE: Secuirty fixes.

= 7.4.0.1 - May 27, 2025 =
* HOTFIX: Quick hotfix for potential fatal error.

= 7.4.0 - May 27, 2025 =
* NEW: Added required updates for table layouts and paging add-on.
* NEW: Added required updates for background processing feature of the Filters add-on.
* UPDATE: Added support for iframe block editor and rendering Ajax Load More Block.
* FIX: Fixed issue with default values on archive templates adding a duplicate query param.
* FIX: Fixed issue with `load_plugin_textdomain` warning.
* FIX: Fixed potential issue with core and filters ALM blocks throwing admin error.
* Fix: Fixed PHP warning due to registering the text domain.
* UPDATE: Various code cleanup and UI updates throughout the plugin.

= 7.3.1.3 - May 15, 2025 =
* UPDATE: Various security fixes.

= 7.3.1.2 - May 11, 2025 =
* HOTFIX: Revert change to fix `load_plugin_textdomain` warning. This update caused a fatal error. Sorry about that. Will fix the warning in the next release.

= 7.3.1.1 - May 10, 2025 =
* UPDATE: Various security fixes.
* UPDATE: Updated Axios NPM package.
* FIX: Fixed issue with `load_plugin_textdomain` warning.

= 7.3.1 - February 12, 2025 =
* UPDATE: Updated new Date Query feature to parse compare value. This was previously not functioning as expected. e.g. `[ajax_load_more date_query="2024-01-01;2020-01-01" date_query_compare=">=;<=" date_query_relation="OR"]
* NEW: Added date_query_column parameter to allow for querying the post_date or post_modified column. e.g. `[ajax_load_more date_query="2020-01-01" date_query_column="post_modified"]
* HOTFIX: Fixed issue with conflicting `wp-block-query` class the new Query Loop add-on.

= 7.3.0 - February 6, 2025 =
* NEW: Added Date Query support with `date_query`, `date_query_before` and `date_query_after` parameters.
* UPDATE: Various admin UI/UX updates and code cleanup throughout plugin.

= 7.2.0.1 - January 22, 2025 =
* HOTFIX: Fixed potential issue with the parsing of `meta_query` and `tax_query` parameters when using Preloaded add-on.

= 7.2.0 - January 17, 2025 =
* NEW: Added required updates for the new [Query Loop add-on](https://connekthq.com/plugins/ajax-load-more/add-ons/query-loop/).
* NEW: Added new `alm_single_post_querystring` hook to remove the querystring from Single Post add-on URLs.
* NEW: Added preview functionality for previewing an ALM instance while building a shortcode.
* NEW: Added new `template` parameter to the core ALM shortcode. This new parameter will normalize the template selection and replace the `repeater` and `theme_repeater` parameters.
* NEW: Added new ALM core parameters, `urls`, `prev_button_label`, `prev_button_loading_label`, and `prev_button_done_label`. These new parameters can be used in the near future with various add-ons.
* UPDATE: Various admin UI/UX updates throughout plugin.
* FIX: Fixed issue with Users extension showing mising license notice in admin.

= 7.1.4 - December 4, 2024 =
* UPDATE: Updated Axios HTTP library to latest version.
* UPDATE: Added feature to re-save default Repeater Template if template was deleted from the filesystem.
* UDPATE: Modified the `alm` db columns to match upcoming Templates add-on requirements.
* UPDATE: Added functionality required for Elementor Add-on update to support loading previous posts on paged results.
* UPDATE: Started integration with Query Loop block and Ajax Load More.
* FIX: Fixed z-index issue with ALM navigation in WP admin.
* FIX: Added fix for `load_plugin_textdomain` php notice.
* FIX: Fixed issue with Preloaded amount being 0 and no post remaining.
* FIX: Fixed issue with Comments add-on and allowing for a default post ID.
* UPDATE: Code cleanup and other minor bug fixes.
* UPDATE: Various admin UI/UX updates.


= 7.1.3 - October 1, 2024 =
* UPDATE: Various security fixes.


= 7.1.2 - May 30, 2024 =
* FIX: Fixed issue with full article loading in Next Page add-on.
* UPDATE: Various security fixes.


= 7.1.1 - May 10, 2024 =
* UPDATE: Added required functionality and support to allow for Next Page add-on to be used with Single Posts for full article loading with split pages.
* UPDATE: Various UI/UX improvements for the plugin admin.


= 7.1.0.1 - March 21, 2024 =
* HOTFIX: Hotfix for missing `css_classes` parameter in `7.1.0` release.


= 7.1.0 - March 21, 2024 =
* NEW: Added Ajax Load More block for the WordPress Block Editor. ALM instances are now able to be rendered inside the Block Editor.
* NEW: Added Ajax Load More Filters block for the WordPress Block Editor. When activated, ALM Filters can be rendered inside the Block Editor using the Filters block.
* NEW: Added new `wrapper_classes` parameter that injects classnames onto the top level `ajax-load-more-wrap` container.
* NEW: Added new `alm_user_role` filter to allow developers to change the user role required to access the Ajax Load More admin. Default is `edit_theme_options`.
* UPDATE: Various security fixes with regards to accessing layouts and directory paths.
* UPDATE: Added support for caching Filter add-on facets with the Cache add-on.
* FIX: Fixed bug with Next Page add-on disabling the Load More button early when there were pages remaining.
* UDPATE: Various UI/UX updates throughout plugin admin and frontend.


= 7.0.3 - February 15, 2024 =
* FIX: Added fix for Paging add-on scrolling to top of listing on initial page load when `paging_scroll` was `true`.
* FIX: Fixed issue with undefined `post_count` when loading Ajax Load More with Ajax/HTTP request.


= 7.0.2 - February 8, 2024 =
* NEW: Added 'alm_licensing_sslverify' hook to allow users to disable SSL verification when checking for updates.
* NEW: Added new Paging add-on parameter `paging_container_classes` used for adding CSS classes to the paging HTML container.
* NEW: Added support for Elementor Loop Grid widget when using Elementor add-on.
* FIX: Fixed issue with Elementor add-on potentially not disabling the Load More button when no content remains.
* SECURITY: Various security fixes for admin level plugin settings.


= 7.0.1 - January 23, 2024 =
* HOTFIX: Fixed issue with Filters add-on that would appear when using the Paging add-on. Filters would remain disabled after interacting with a filter due to a missing callback function.
* HOTFIX: Fixed issue with display of Single Posts data when being used with Elementor.


= 7.0.0 - January 16, 2024 =
UPGRADE NOTICE:
This Ajax Load More update may introduce breaking changes for core plugin CSS styling and add-on functionality.

Major changes in this release includes the removal of the `transition_container` parameter which affects the rendered HTML of the plugin by removing the `.alm-reveal` div used to display the Ajax loaded content.
If you are using the Filters, SEO or Paging add-ons please be sure to update these add-ons after updating the core Ajax Load More plugin.

[View Release Notes](https://connekthq.com/ajax-load-more-7-0/)

* NEW: Removed `alm-reveal` div and transition container. This affects all add-ons and core plugin as there is no more a transition container appended for each load more action.
* NEW: Added `transition_delay` parameter that allows for staggering the display of each post incrementally as content is loaded.
* NEW: Added new `alm-is-loaded` class that is added to the main ALM container after the initial ajax request.
* UPDATE: Improved JavaScript code quality and readability which is key for long term maintenance and sustainability of ALM.
* UPDATE: Improved content loading for infinite scroll and when using Paging add-on.
* UPDATE: Improved Masonry loading and transition timing.
* UPDATE: Removed `transition_container_classes` parameter.
* UPDATE: Removed legacy browser polyfills and helper functions to lower the overall compiled JS size.
* UPDATE: Updated plugin installer class.
* FIX: Fixed issue with admin_footer_text hook not returning but echoing text content.
* FIX: Fixed issue with Single Posts add-on preview function. This was no longer working but it functional again.

= 6.2.0.3 - November 6, 2023 =
*HOTFIX: Fixed issue with fatal i18n error in core Ajax Load More Elementor widget causing issues with loading posts on edit screens.
*UPDATE: Improved Cache add-on checker function for increased reliability while fetching cache.

= 6.2.0.2 - November 3, 2023 =
* FIX: Fixed issue with paging URLs when using Elementor add-on with WooCommerce products and WP archive templates.
* FIX: Fixed issue with Cache and Paging add-ons throwing an error on initial page load and causing posts not to load..
* NEW: Added `alm_restapi_url` hook to update the URL base REST API calls.
```
add_filter( 'alm_restapi_url', function(){
	return 'https://mywebsite.com';
});
```

= 6.2.0.1 - October 20, 2023 =
* HOTFIX: Fixed issue with speed variable when loading Ajax Load More in a SPA application or via HTTP request.

= 6.2.0 - September 27, 2023 =
* UPDATE: Added support for GA4 integration across various add-ons.
* UPDATE: Updated Shortcode builder to accept new plugin parameters for Next Page add-on.
* UPDATE: Code cleanup and organization.
* FIX: Fixed issue with encoding of Canonical URL potentially causing http errors in Ajax request.
* FIX: Fixed various issues in Shortcode Builder.
* FIX: Fixed issue with unclosed HTML element when using seo_offset parameter.
* FIX: Fixed issue with default ALM search parameter being encoded incorrectly.
* FIX: Fixed issue with seo_offset parameter not displaying results due to JS error.
* FIX: Various security fixes and patches.

= 6.1.0.1 - August 8, 2023 =
* HOTFIX: Fixed issue with querying data using `custom_args` parameter.
* HOTFIX: Fixed issue with querying data using the `vars` parameter.

= 6.1.0 - July 27, 2023 =

UPGRADE NOTICE:
This ALM update adds a new `sort_key` parameter that is used for ordering results by custom field values.
Users who were previously using `meta_key` for custom field ordering will need to update their shortcodes as this update is NOT backwards compatible.

* NEW: Added new `sort_key` parameter to make it easier to sort query results by custom field.
* NEW: Admin interface refresh.
* FIX: Fixed issue with Canonical URL not being set correctly.
* FIX: Fixed issue with Nextpage and Paging add-on not working in some instances.
* FIX: Added fix for frontpage canonical URL fetching returning incorrect URL.
* UPDATE: Updated ALM build process to use wp-scripts.
* UPDATE: Code cleanup and organization.

= 6.0.2 - June 27, 2023 =
* HOTFIX: Fixed issue with Single Posts add-on not receiving correct post ID and caused issues with loading the proper post.
* FIX: Attempted compatibility fix for WPML and Single Posts add-on loading incorrect language because of WPML language cookies.
* Fix: Fixed issue with broken [Results Text](https://connekthq.com/plugins/ajax-load-more/docs/results-text/)

= 6.0.1 - June 13, 2023 =
* HOTFIX: Fixed issue with Shortcode Builder JavaScript error causing issues in admin.
* HOTFIX: Fixed issue with posts_per_page="-1" unintentionally not loading any posts.

= 6.0.0 - June 11, 2023 =
* NOTICE: Ajax Load More 6.0 is a major update and includes a breaking changes with regards to the Cache add-on. Please review the information below before updating.
* NOTICE: Cache add-on < 2.0 is no longer supported by Ajax Load More. Please update to the latest version of the add-on to continue using the Cache functionality.

* NEW: Adding required functionality for the Cache 2.0 update. This introduces a new cache structure using MD5 hash for many cache URLs.
* UPDATE: Core ALM JavaScript refactoring to stremline content loading using async/await and promises.
* UPDATE: Updated WooCommerce and Elementor add-on functionality to load content in a normalized manner.
* UPDATE: Code refactoring, cleanup and overall improvements across the Ajax Load More.
* UPDATE: Added support for ACF extension and row index.
* FIX: Fixed issue with Elementor and Cache add-ons not working in some instances.
* FIX: Fixed issue with WooCommerce and Cache add-ons not working in some instances.
* FIX: Fixed issue with ACF extension and Paging add-on not getting correct amount of posts loaded.

= 5.6.0.5 - April 3, 2023 =
* HOTFIX: Fixed issue with `taxonomy_relation` parameter resolving to `AND`.

= 5.6.0.4 - March 8, 2023 =
* UPDATE: Restricting ALM ID to contain alphanumeric characters, dashes and underscores only.
* FIX: Fixed issue with Filters target parameter and the security updates in ALM 5.6.0.3
* FIX: Fix for `total_posts` value in new `getTotals()` method.


= 5.6.0.3 - February 24, 2023 =
* NEW: Add new `getTotalRemaining` public JS function that returns the total number of posts remaining to be loaded  by ALM instance ID. [See Docs](https://connekthq.com/plugins/ajax-load-more/docs/public-functions/#getTotalRemaining)
* Update: Added support for disabling Images Loaded functionality in WooCommerce add-on.
* Update: Cleaned up localized post count variables to make it easier to access across the plugin.
* UPDATE: Various code cleanup and refactoring.
* FIX: Added further security fixes to shortcode attribute rendering and escaping params.

= 5.6.0.2 - February 17, 2023 =
* HOTFIX: Fixed error with compiled Ajax Load More JS causing issues with addons.
* FIX: Adding fix for new ALM JavaScript Object not rendering when using default ID.

= 5.6.0.1 - February 16, 2023 =
* FIX: Added security fix for missing escaping on various shortcode params.
* FIX: Added fix for new alm object parameter.
* UPDATE: HTML data-attribute clean up on rendered shortcode parameters.

= 5.6.0 - February 14, 2023 =
* NEW: Added new ajaxloadmore.click() public JS function to manually trigger an Ajax Load More load action from any element on the screen.
* NEW: Added support for new Filter facets in Filters add-on version 2.0.
* NEW: Added alm JavaScript object to the global `window` object so accessing config params can be done in browser. e.g. `window.ajax_load_more`
* NEW: Added support for `include_children` when running a taxonomy query.
* FIX: Fixed issue with localized data variables not working in Full Site Editing (FSE) themes.
* FIX: Fixed deprecation notice in Elementor widgetregistration
* UPDATE: Security fix for escaping data attributes in shortcode.
* UPDATE: Code cleanup.

= 5.5.5 - January 5, 2013 =
* UPDATE: Removed requirement of `transition_container` to be present when using Preloaded.
* UPDATE: Various updates required for the new 2.0 Layouts add-on release.
* UPDATE: Removed legacy loading style `circles` and reference from the CSS.
* NEW: Add new `getTotalPosts` and `getPostsCount` public JS functions that will return data from the localized window variables.
* NEW: Added Ajax Load More plugin navigation to the header on all admin plugin pages.
* NEW: Added ability to add add-on licenses via wp-config constants. License activation will still need to be triggered from the License admin screen. `ALM_CACHE_LICENSE_KEY="xxxxxxxxxx"`
* NEW: Added `alm_mask_license_keys` filter to mask the license keys rendering in the WP admin. `add_filter( 'alm_mask_license_keys', '__return_true' );`
* UPDATE: Improved security of shortcode output by sanitizing all fields before render.
* UPDATE: Code cleanup and organization.
* FIX: Fixed various issue with Filters add-on and JS `<noscript/>` fallback URLs when accessing paged results.


= 5.5.4.1 - August 24, 2022 =
* SECURITY: Patched and improved the data sanitization of some admin level operations.


= 5.5.4 - August 19, 2022 =
* NEW - Added new core setting for adding custom JavaScript. This new setting will allow for adding callbacks directly from the ALM settings page.
* NEW: Added new `alm_seo_posts_per_page` filter to disable the posts_per_page protection in the SEO add-on.
* NEW - Added new `alm_canonical_frontpage_trailing_slash` filter to remove the trailing slash from frontpage URLs. This is useful for add-ons to update the browser URL.
* NEW - Added new `alm_allow_future_posts` filter to allow future posts for non-logged in users. `add_filter('alm_allow_future_posts', '__return_true');`
* NEW - Added new `alm_button_wrap_classes` filter to add classes to the button wrapper element.
* UPDATE: Added new `start` and `end` variables in the [Results](https://connekthq.com/plugins/ajax-load-more/docs/results-text) Text feature. This adds support for using Results Text with the Paging Add-on.
* UPDATE: Normalized how the default.php Repeater Template is created on plugin activation.
* FIX - Fixed PHP warnings displayed if ALM was added to a 404 page.
* SECURITY - Fix for potential admin level exploit with Repeater exports.
* SECURITY - Fix for potential admin level exploit with getting taxonomy terms in the Shortcode Builder.
* SECURITY - Fix for potential admin level exploit with getting layout templates in the Repeater Template section of ALM.


= 5.5.3 - June 24, 2022 =
* UPDATE: Added support for lazy loading images with Blocksy Pro theme.
* FIX: Fixed issue with potential xs scriptiing issue. [report](https://github.com/dcooney/wordpress-ajax-load-more/issues/183)


= 5.5.2 - March 7, 2022 =
* NEW: Added `alm_ajaxurl` filter that allows for filtering the admin-ajax URL.
* FIX: Fixed issue with Filters add-on pagination links in `<noscript/> not maintinaing the querystring URLs e.g. ?pg=2, ?pg=3 etc.
* FIX: Added fix for potential Sticky Posts fatal error that could occur in the WP_Query when using the ALM sticky post functionality on very large large sites with greatan than 200 posts.
* FIX: Fixed PHP warning that could appear in the `<noscript/>` function for SEO and Filters add-ons.
* FIX: Fixed issue with SEO and Preloaded element not getting the 'alm-preloaded' classname.
* FIX: Fixed issue with PHP warning around ALM settings.


= 5.5.1 - January 10, 2022 =

- UPDATE - Added required functionality for updated to the Next Page add-on that allows for auto implementation across post types.
- UPDATE - Updates Axios library to 0.24.0.
- UPDATE - Cleaned and refactored the meta query functionality.
- UPDATE - Various admin UI and UX updates.
- FIX - Fixed issue with null taxonomy query being added to some tax_query. This did not affect the overall query, but was being returned by mistake an dis now removed.


= 5.5.0.1 - 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.

= 5.4.2.1 - 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](https://connekthq.com/plugins/ajax-load-more/add-ons/elementor/#configuration) if you require addtional information.

**OTHER UPDATES**

-  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](https://connekthq.com/plugins/ajax-load-more/examples/scroll-direction/).
   -  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](https://connekthq.com/plugins/ajax-load-more/add-ons/elementor/).
-  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](https://github.com/CodeByZach/pace) 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](https://connekthq.com/plugins/ajax-load-more/add-ons/woocommerce/).
-  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](https://connekthq.com/plugins/ajax-load-more/examples/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](https://wordpress.org/plugins/ajax-load-more-for-terms/) extension.
-  UPDATE - Added support for Post Type archives in the [Archives](https://connekthq.com/plugins/ajax-load-more/docs/archives/) integration.
-  UPDATE - Updated `.alm-listing` CSS styles to better integrate with WooCommerce.
-  UPDATE - Added new Single Post [implementation](https://connekthq.com/plugins/ajax-load-more/add-ons/single-posts/#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.

= 5.1.0.1 - 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 =
MAJOR UPDATE NOTICE
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](https://connekthq.com/plugins/ajax-load-more/examples/results-text/)
-  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

== Upgrade Notice ==

= 6.1.0 =
Varsion 6.1.0 includes a breaking change for ordering by `meta_key`. Ordering by `meta_key` (Custom Field) is now handled by the new `sort_key` parameter. Please update your shortcodes accordingly.

= 6.0.0 =
Version 6.0+ of Ajax Load More includes breaking changes with the Cache-addon version 1.x. Please upgrade the add-on to 2.0 or greater if you wish to continue using the Cache add-on.
