Outstand Query Loop Dedup WP Registry grade A. No security issues foundWP RegistryNo security issues foundOpen the reportA
Prevents duplicate posts across multiple Query Loop blocks on the same page.
Install
Upload it under Plugins → Add New Plugin → Upload Plugin, then activate.
Install straight from GitHub with WP-CLI:
wp plugin install https://github.com/pixelalbatross/outstand-query-loop-dedup/releases/download/1.2.0/outstand-query-loop-dedup-1.2.0.zipOn Packagist as outstand/query-loop-dedup:
composer require outstand/query-loop-dedupPrevents duplicate posts across multiple Query Loop blocks on the same page.
Opt-in per block via a toggle in the block editor. Supports custom queries, inherited queries, and arbitrary custom blocks via a resolver filter. Includes editor-side preview, PHP filters for per-block overrides, and an exclude_duplicates WP_Query arg for ad-hoc lists.
![]()
Features
See docs/deduplication.md for the full feature guide.
Installation
Manual Installation
- Download the latest release ZIP from the Releases page.
- Go to Plugins > Add New > Upload Plugin in your WordPress admin area.
- Upload the ZIP file and click Install Now.
- Activate the plugin.
Install with Composer
To include this plugin as a dependency in your Composer-managed WordPress project:
- Add the plugin to your project using the following command:
composer require outstand/query-loop-dedup
- Run
composer install. - Activate the plugin from your WordPress admin area or using WP-CLI.
Quick start
- Add multiple Query Loop blocks to a page.
- Enable Exclude duplicate posts in the block sidebar under the Deduplication panel.
- Each subsequent block will skip posts already shown by previous blocks.
Notes
Deduplication runs at render time. For inherited queries, pagination counts (found_posts, max_num_pages) are recomputed after filtering, but only for duplicates known at render time — posts removed on later pages are not yet known when an earlier page renders. This is an inherent limitation of render-time deduplication.
Requirements
- WordPress 6.7 or higher
- PHP 8.2 or higher
Tests
JS tests run locally via Jest:
npm run test:js
PHP tests run inside a wp-env container:
npm run test:setup # first time only — starts Docker WP + test DB
npm run test:unit
Changelog
All notable changes to this project are documented in CHANGELOG.md.
License
This project is licensed under the GPL-3.0-or-later.
Releases
5 releases. Each count is every asset in that release; expand a row for the breakdown.