ALM LogoAjax Load More is a powerful WordPress plugin to add infinite scroll functionality to your website.

Build complex WordPress queries using our intuitive shortcode builder and then simply add the shortcode to your page via the content editor or directly into your template files.

FeaturesShortcode Parameters | Repeater Templates | Examples | Premium Add-ons


Custom Shortcode Builder

Easily create your own Ajax Load More shortcode by adjusting the various WordPress query parameters in our easy-to-use shortcode builder.
View Screenshots

Query Parameters

Ajax Load More allows you to query WordPress by many different content types. Query by Post Type, Post Format, Category, Tags, Custom Taxonomies, Search Term, Authors and more!!
See Shortcode Parameters

Customizable Repeater Template

Edit and extend the functionality of Ajax Load More by creating your own repeater template to match the look and feel of your website.
More Details

Multiple Instances

One, two, three or ten – you can include multiple instances of Ajax Load More on a single page.
View example

Search Engine Optimization (add-on)

Quickly and easily enable paging URLs and provide visitors the ability to use their forward and back browser buttons to navigate through the ajax loaded pages.
More Details

Content Caching (add-on)

Create static HTML files of Ajax Load More server requests then delivers those static files to your visitors without querying the database.
More Details

Shortcode Parameters

Ajax Load More accepts a variety of query (wp_query()) parameters that are passed thru to WordPress via shortcode – don’t worry, creating your own shortcode is simple with our intuitive Shortcode Builder.

repeater Select from a list of customizable repeaters (add-on available). Default = 'default'
theme_repeater Select from a list of template files in your current theme directory (add-on only) Default = null
post_type Comma separated list of post types to query. Default = 'post'
post_format Query by post format. Default = null
category A comma separated list of categories to include by slug. Default = null
category__not_in A comma separated list of categories to exclude by ID. Default = null
tag A comma separated list of tags to include by slug. Default = null
tag__not_in A comma separated list of tags to exclude by ID. Default = null
taxonomy Query by custom taxonomy name. Default = null
taxonomy_terms Comma separated list of custom taxonomy terms(slug) to query. Default = null
taxonomy_operator Operator to compare taxonomy terms against (IN/NOT IN). Default = 'IN'
day Day of the week. Default = null
month Month of the year. Default = null
year Year of post. Default = 'IN'
meta_key Custom field key(name). Default = null
meta_value Custom field value. Default = null
meta_compare Operator to compare meta_key and meta_value against (IN/NOT IN/=/!=/>/>=/</<=). Default = 'IN'
meta_type Custom field type. Default = 'CHAR'
meta_relation Used with multiple custom field entries (AND/OR). Default = 'AND'
author Query by author id. Default = null
search Query search term ('s'). Default = null
custom_args A semicolon separated list of value:pair arguments. e.g. tag_slug__and:design,development; event_display:upcoming. Default = null
post__in Comma separated list of post ID's to include in query.Default = null
exclude Comma separated list of post ID's to exclude from query.Default = null
order Order posts ASC(ascending) or DESC(descending) order. Default = 'DESC'
orderby Order posts by date, title, name, menu order, random, author, post ID or comment count. Default = 'date'
offset Offset the initial query (number).Default = '0'
posts_per_page Number of posts to load with each request.Default = '5'
scroll Load more posts as the user scrolls the page (true/false).Default = 'true'
scroll_distance The distance from the bottom of the screen to trigger the loading of posts while scrolling.Default = '150'
max_pages Maximum number of pages to load while scrolling (only activated if scroll = true). Default = '5'
pause_override Allow scrolling to override the Pause parameter and trigger the loading of posts on scroll. Default = null
pause Do not load posts until user clicks load posts button (true/false). Default = 'false'
transition Choose a loading transition (slide/fade/none). Default = 'slide'
images_loaded Wait for all images to load before displaying ajax loaded content. (true/false). Default = 'false'
destroy_after Remove ajax load more functionality after 'n' number of pages have been loaded. Default = null
button_label The label text for Load more button. Default = 'Older Posts'
button_loading_label Update the text of the Load More button while content is loading. Default = null
container_type Override the global Container Type that was set on ALM Settings page. Default = null
css_classes Add custom CSS classes to the Ajax Load More container. Default = null
cache Turn on content caching for this Ajax Load More query. (true/false) (add-on only) Default = 'false'
cache_id A unique 10 digit ID for the cached query. (true/false) (add-on only) Default = 'false'
seo Enable address bar URL rewrites as users page through content. (true/false) (add-on only) Default = 'false'
preloaded Should Ajax Load More preload posts? (true/false) (add-on only) Default = 'false'
preloaded_amount The amount of posts to preload. (true/false) (add-on only) Default = '5'
previous_post Enable the infinite scrolling of single posts. (true/false) (add-on only)
Default = 'false'
previous_post_id The current post ID to pass to Ajax Load More. (add-on only)
Default = 'get_the_ID()'
paging Replace infinite scrolling with a paged navigation system. (true/false) (add-on only)
Default = 'false'
paging_controls Show previous(«) and next(») buttons (true/false)
Default = 'false'
paging_classes Add classes to the paging navigation menu for CSS styling
Default = null
paging_show_at_most Maximum amount of pages to show at a time. 0 = no maximum
Default = '0'

Example Shortcode

[ajax_load_more post_type="post, portfolio" repeater="default" posts_per_page="5" transition="fade" button_label="Older Posts"]

Repeater Templates

Repeater templates are snippets of code that will execute over and over to display post details within a WordPress loop. They consist of a combination of HTML, PHP and core WordPress functions such as the_title() and the_permalink().

The default Ajax Load More template is fully editable with syntax highlighting enabled and allows you to take full control over what is displayed to your visitors.

Ajax Load More - Default Repeater Template

Additional Templates

The Custom Repeaters add-on will provide the ability to create an infinite number of repeater templates – this will allow you to create unique layouts for different content types throughout your theme.

Create, modify and delete repeater templates as you need them with absolutely zero restrictions.

The Custom Repeaters add-on will provide the ability to create an infinite number of repeater templates.

Click here to learn more about the Custom Repeaters add-on.



Ajax Load More in it's most simplest form.

Destroy After

Remove Ajax Load More functionality after 'n' number of pages.

Event Listing

Ordering events by custom field date.

Fade Transition

Elements fade in as posts are loaded.


Filter and reset an Ajax Load More instance.

Images Loaded

Download images before displaying ajax loaded content.


Creating a flexible grid layout with Masonry.

Multiple Instances

Include multiple Ajax Load More instances on a single page.

Paging URLs

Generate unique 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.

Search Results

Returning results based on search terms.

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.

Premium Add-ons

Ajax Load More offers a variety of unique add-ons that will extend and enhance the core functionality of the plugin – each add-on is installed as a stand alone plugin and will receive update notifications directly within the WordPress Plugin dashboard.