Ready to get started?Download WordPress

Plugin Directory

Ajax Load More

A simple solution for lazy loading your WordPress posts and pages with Ajax.

Ajax Load More is a simple yet powerful solution for lazy loading WordPress posts and pages with Ajax. Build complex WordPress queries using our shortcode builder then add the shortcode to your pages via the content editor or directly into your template files.


  • Multiple Instances - One, two, three or ten - you can now include multiple instances of Ajax Load More on a single page.
  • Shortcode Builder - Easily create your own 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!!
  • Customizable 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).
  • Setting Panel - Customize your version of Ajax Load More by updating various plugin settings (see screenshots).

Check out the demo site for more information!

Shortcode Parameters

Ajax Load More accepts a number of parameters that are passed to the WordPress query. These parameters are transferred via shortcode - don't worry, creating your shortcode is simple with our intuitive Shortcode Builder.

  • repeater - Choose a repeater template (Add-on available). Default = ‘default’
  • post_type - Comma separated list of post types. 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). 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 = null
  • taxonomy_operator - Operator to compare Taxonomy Terms against (IN/NOT IN). 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/=/!=/>/>=/</<= etc.). Default = ‘IN’
  • author - Query by author id. Default = null
  • search - Query search term (‘s’). Default = null
  • order - Display posts in 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’
  • exclude - Comma separated list of post ID’s to exclude from query. Default = null
  • offset - Offset the initial query (number). Default = ’0′
  • posts_per_page - Number of posts to load with each Ajax request. Default = ’5′
  • scroll - Load more posts as the user scrolls the page (true/false). Default = ‘true’
  • max_pages - Maximum number of pages to load while user is scrolling (activated on when scroll = true). Default = '5'
  • pause - Do not load posts until user clicks the Load More button (true/false). Default = 'false'
  • transition - Choose a posts reveal transition (slide/fade/none). Default = 'slide'
  • 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'
  • seo - Enable address bar URL rewrites as users page through content - add-on only (true/false). Default = ‘false’
  • preloaded - Should Ajax Load More preload posts? - add-on only (true/false). Default = ‘false’
  • preloaded_amount - The amount of posts to preload. - add-on only Default = ‘5’

Example Shortcode

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


  • Default - Out of the box functionality and styling
  • Fade Transition - Elements fade in as posts are loaded
  • Mansory - Creating a flexible grid layout with Masonry JS
  • Multiple Instances - Include multiple Ajax Load More' on a single page
  • 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 - Generate unique paging URLs with each Ajax Load More query

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.

Custom Repeaters

The Custom Repeaters add-on will allow for unlimited repeater templates and provide the ability to create unique templates for different content types throughout your theme.
Get More Information


The Preloaded add-on will allow you to quickly and easily preload an initial set of posts before completing any Ajax requests to the server.
Get More Information

Search Engine Optimization

The SEO add-on will optimize your ajax loaded content for search engines and site visitors by generating standard WordPress paging URLs with each Ajax Load More query.
Get More Information

Callback Functions

The following functions are avaialble to be dispatched by Ajax Load More.

Ajax Complete - The almComplete() function is triggered after every successful ajax call made by Ajax Load More. To utilize the almComplete() function simply place the following code inside your sites javascript file.

$.fn.almComplete = function(alm){
    // Your on complete code goes here


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_page - Returns the current page number. 'echo $alm_page;'
  • $alm_item - Returns the current item number within your loop. 'echo $alm_item;'
  • $alm_found_posts - Returns the total number of posts found within the entire WordPress query. 'echo $alm_found_posts;'

Tested Browsers

  • Firefox (Mac, PC)
  • Chrome (Mac, PC, iOS, Android)
  • Safari (Mac, iOS)
  • IE8+
  • Android (Native)
  • BB10 (Native)



Please Rate Ajax Load More!

Your ratings make a big difference! If you like and use Ajax Load More, please consider taking the time to rate my plugin. Your ratings and reviews will help this plugin grow and provide the motivation needed to keep pushing it forward.

Requires: 3.6 or higher
Compatible up to: 4.1.1
Last Updated: 2015-2-25
Active Installs: 5,000+


5 out of 5 stars


46 of 62 support threads in the last two months have been resolved.

Got something to say? Need help?


Not enough data

1 person says it works.
0 people say it's broken.

100,1,1 100,1,1 100,1,1 100,2,2 100,1,1 100,1,1 100,3,3 100,1,1 100,2,2 100,1,1
50,2,1 100,1,1
100,1,1 100,1,1 100,2,2 100,2,2 67,3,2