Loading...
Hot as hell, this is the top-bar widget Link

bs Load More

Plugin to add a Load More button to Bootscore’s loop.

Overview

bs Load More extends Bootscore’s loop with a Load More button that fetches and appends the next batch of items without a page reload. Works with all bs Loop layouts and is compatible with bs Swiper and bs Isotope.

Installation

  1. Download Plugin
  2. In your admin panel, go to Plugins > and click the Add New button.
  3. Click Upload Plugin and Choose File, then select the Plugin’s .zip file. Click Install Now.
  4. Click Activate to use your new Plugin right away.

Theme

The plugin adds a Load More button to Bootscore’s native loop in archive.php, index.php, and search.php, replacing the default pagination. The number of items shown and loaded per click is controlled globally in:

wp-admin → Settings → Reading → Blog pages show at most X posts

  • Set it to 2 — shows 2 items, loads 2 more per click
  • Set it to 12 — shows 12 items, loads 12 more per click

Button

The Load More button is rendered directly below the loop wrapper. It shows a Bootstrap spinner while loading, then re-enables with “Load more” text, or becomes disabled with “No more items” text when all items have been loaded.

Button and wrapper classes are filterable:

/**
 * Change the button class
 */
add_filter('bootscore/bs-load-more/class/button', function($class) {
  return 'btn btn-outline-primary';
});

/**
 * Change the wrapper class
 */
add_filter('bootscore/bs-load-more/class/wrapper', function($class) {
  return 'text-start mt-3';
});

Disable

The theme Load More can be disabled with a filter — this restores the default pagination:

/**
 * Disable Load More in theme templates, keep default pagination
 */
add_filter('bootscore/load-more/theme-templates', '__return_false');

WooCommerce

The plugin adds a Load More button to WooCommerce’s native product loop on shop and product archive pages, replacing the default pagination. The number of products shown and loaded per click is controlled in:

wp-admin → WooCommerce → Settings → Products → General → Products per page

Or via the Customizer under WooCommerce → Product Catalog → Products per row / rows.

Disable

The WooCommerce Load More can be disabled with a filter — this restores the default WooCommerce pagination:

/**
 * Disable Load More in WooCommerce loop, keep default pagination
 */
add_filter('bootscore/load-more/woocommerce', '__return_false');

The WooCommerce integration is only loaded when WooCommerce is active. On sites without WooCommerce, this feature has no overhead.

bs Loop shortcodes

All bs Loop attributes are supported. The following attributes add a Load More button:

AttributeDescriptionDefault
load_more=""true to enable the Load More buttonfalse
posts=""Required — number of items to show initially and load on each click 
posts="5" shows 5 items, loads 5 more on each click
N/A

posts="" must be set to a positive integer when using load_more="true". A value of -1 (show all) disables Load More since there is nothing further to load.

bs Loop

[bs-loop type="post" tax="category" terms="sample-cat-1, sample-cat-2" load_more="true" posts="2"]

bs Isotope

[bs-loop display="isotope" layout="grid" layout_mode="fit-rows" type="post" tax="category" terms="sample-cat-1, sample-cat-2" load_more="true" posts="4"]
[bs-loop type="product" display="isotope" layout="grid" layout_mode="fit-rows" tax="product_cat" terms="plugins, t-shirts" search="true" posts="4" load_more="true"]

bs Swiper

[bs-loop display="swiper" layout="grid" type="post" tax="category" terms="sample-cat-1, sample-cat-2" load_more="true" posts="4"]

Custom layout

For custom loops, make sure your row wrapper has the bs-loop-grid class and each col wrapper has the bs-loop-grid-item class — Load More uses these to find the grid and append new items.

[bs-loop layout="custom" context="my-custom-loop" type="post" posts="6" load_more="true"]
function open_row_before_loop() {
  if (isset($GLOBALS['bs_loop_contexts']) && in_array('my-custom-loop', $GLOBALS['bs_loop_contexts'])) {
    echo '<div class="row row-cols-1 row-cols-md-3 g-4 mb-4 bs-loop-grid">'; // bs-loop-grid required
  }
}
add_action('bootscore_before_loop', 'open_row_before_loop');

function open_col_before_loop_item() {
  if (isset($GLOBALS['bs_loop_contexts']) && in_array('my-custom-loop', $GLOBALS['bs_loop_contexts'])) {
    echo '<div class="col bs-loop-grid-item">'; // bs-loop-grid-item required
  }
}
add_action('bootscore_before_loop_item', 'open_col_before_loop_item');

Limitations

orderby="rand" is not supported. Each Load More request runs a fresh query with a new random seed, causing duplicate and missing items. Use orderby="date" or orderby="title" for reliable pagination.

type="" set to a taxonomy (e.g. type="product_cat") is not supported. Taxonomy term loops use get_terms() internally, which has a different pagination model than WP_Query. Use standard [bs-loop]without load_more="true" for taxonomy term grids.

Custom loops (layout="custom") require bs-loop-grid on the row wrapper and bs-loop-grid-item on each col wrapper for Load More to correctly append new items into the DOM. See the custom loop examples in bs Loop documentation