=== Load More Anything Listing ===
Contributors: xpertdeveloperz
Tags: load more, infinite scroll, pagination, woocommerce, lazy load
Requires at least: 6.0
Tested up to: 7.1
Requires PHP: 7.4
Stable tag: 2.0.0
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Reveal existing WordPress listing items with a Load More button or automatic scrolling, without editing theme templates.

== Description ==

**Load More Anything Listing** helps make long WordPress listings easier to browse by progressively revealing items that are already present on the page.

Choose the CSS selector for your listing wrapper and repeated items, decide how many items should appear initially, and then let visitors reveal more with a **Load More button** or **automatic scrolling**.

No theme template editing is required.

= Works with many types of listings =

Because the plugin works with CSS selectors, it can be used with many existing frontend layouts, including:

* Blog post listings
* WooCommerce product grids
* Category and archive listings
* Search results
* Comments
* Galleries and portfolio items
* Sidebar or widget lists
* Custom repeated HTML elements

= What's new in version 2.0? =

Version 2.0 is a major modernization of the original plugin.

* **Load More button or auto reveal on scroll**
* **Multiple listing wrappers** can be handled on the same page
* **No jQuery dependency** on the frontend
* Configure **initially visible items**
* Configure **items revealed per step**
* Optional **pagination hiding** until all rendered items are visible
* Optional **fade animation**
* Respects the visitor's **reduced-motion preference**
* Accessible button controls and live status updates
* Cleaner, redesigned WordPress settings screen
* Validated settings and safer frontend configuration
* Existing primary version 1.x settings are preserved during upgrade

= Lightweight by design =

The plugin does not require an external service, account, API key, or remote tracking service.

Its frontend behavior is handled locally in the visitor's browser.

= Important: progressive reveal vs server-side AJAX =

Load More Anything Listing progressively reveals matching items that WordPress, your theme, WooCommerce, or another plugin has **already rendered into the current page HTML**.

It does **not** request additional database records or another page from the server.

This makes it useful when you want a lightweight Load More experience for an existing listing without rebuilding the query or editing theme templates.

If your site needs true server-side AJAX pagination for very large datasets, use a solution designed to request additional records from the server.

== Installation ==

1. Install and activate **Load More Anything Listing**.
2. Go to **Settings > Load More Anything**.
3. Enter the CSS selector for your listing wrapper.
4. Enter the CSS selector for the repeated listing items.
5. Choose how many items should be visible initially.
6. Choose how many additional items should be revealed at a time.
7. Select **Load More button** or **Auto reveal on scroll**.
8. Optionally enter the selector for your existing pagination.
9. Save the settings and test the target listing on the frontend.

= Example =

Given this markup:

`<div id="post-list">`
`  <article>Item 1</article>`
`  <article>Item 2</article>`
`  <article>Item 3</article>`
`</div>`

Use:

* Listing wrapper: `#post-list`
* Listing items: `#post-list article`

The plugin can then show only the configured initial number of articles and progressively reveal the remaining articles.

== Frequently Asked Questions ==

= Do I need to edit my theme files? =

No. The plugin is configured using CSS selectors from **Settings > Load More Anything**.

= What is a listing wrapper? =

The wrapper is the container around the repeated items.

For example, for:

`<div id="post-list">...</div>`

the wrapper selector is:

`#post-list`

= What is a listing item selector? =

It identifies the repeated elements inside the listing.

For example:

`#post-list article`

= Can I use CSS classes instead of IDs? =

Yes. Standard CSS selectors can be used. For example, a WooCommerce layout may use selectors such as:

`.products`

and:

`.products .product`

The exact selector depends on the HTML produced by your theme or plugin.

= Does the plugin perform AJAX requests? =

No. Version 2.0 accurately describes the plugin as a progressive reveal tool. It reveals matching items that are already present in the current page HTML.

= Can it work with WooCommerce products? =

Yes, when the product elements are already rendered in the current page and can be identified using CSS selectors.

= Can it work with multiple listings on one page? =

Yes. Version 2.0 can initialize multiple matching wrapper elements independently.

= What does the pagination option do? =

If you provide a pagination selector and enable the option, matching pagination can remain hidden while there are still rendered items waiting to be revealed. It becomes visible again after all matching items have been shown.

= What is Auto reveal on scroll? =

Instead of displaying a Load More button, the plugin can reveal the next group of items as the visitor approaches the end of the listing.

The scroll preload distance controls how early the next group is revealed.

= Will my version 1.0 settings be lost when upgrading? =

The primary existing settings for the wrapper, item selector, visible count, reveal count, button label, and pagination selector are preserved. Version 2.0 adds new settings with sensible defaults.

= Does the plugin send data to an external service? =

No. The plugin does not require an external service or API and does not add its own remote tracking.

== Screenshots ==

1. Version 2.0 settings screen with listing selectors, reveal behavior, and configuration options.
2. Configure a listing wrapper, repeated item selector, pagination selector, and item counts.
3. Load More button mode progressively reveals additional items from an existing listing.
4. After all rendered items are revealed, the Load More control is removed and optional pagination becomes available.
5. Auto reveal on scroll provides a button-free progressive browsing experience.

== Changelog ==

= 2.0.0 =
* Major modernization of the original plugin.
* Added Load More button and automatic reveal-on-scroll modes.
* Added support for multiple matching listing wrappers on the same page.
* Replaced the frontend jQuery dependency with vanilla JavaScript.
* Added configurable initial and per-reveal item counts.
* Added optional pagination hiding until all rendered items are visible.
* Added fade animation with reduced-motion support.
* Added accessible button controls and live status updates.
* Added validated Settings API registration and safer frontend configuration.
* Redesigned the WordPress settings screen.
* Preserved primary version 1.x settings for upgrade compatibility.
* Corrected plugin metadata, text domain, documentation, and examples.
* Clarified that the plugin progressively reveals existing page items rather than fetching new records over AJAX.

= 1.0 =
* Initial release.
