network-wp-query
network-wp-query copied to clipboard
:electric_plug: Network-wide WP Query for Multisite environment, which supports POSTS-PER-SITE query etc. [STAND-ALONE][Plugin]
Network WP Query
A WordPress plugin that provides Network-wide WP_Query for Multisite environment.
This plugin is based on / a improved version of WP_Query_Multisite (a custom version of WP_Query_Multisite).
Installation
Manual Installation
- Just copy all files into
<ABSPATH>wp-content/plugins/network-wp-query/.
Manual Installation (as a Must-Use plugin)
-
Just copy all files into
<ABSPATH>wp-content/mu-plugins/network-wp-query/. -
Move
network-wp-query/loader/50-network-wp-query-loader.phpinto<ABSPATH>wp-content/mu-plugins/.
Installation via Composer
-
Install via Composer.
composer require devaloka/network-wp-query
Installation via Composer (as a Must-Use plugin)
-
Install via Composer.
composer require devaloka/network-wp-query -
Move
network-wp-querydirectory into<ABSPATH>wp-content/mu-plugins/. -
Move
network-wp-query/loader/50-network-wp-query-loader.phpinto<ABSPATH>wp-content/mu-plugins/.
Example Usage
Standard Loop
<?php $query = new WP_Query(['network' => true]); ?>
<?php if ($query->have_posts()): ?>
<?php while ($query->have_posts()): $query->the_post(); ?>
<?php the_content(); ?>
<?php endwhile; ?>
<?php wp_reset_postdata(); ?>
<?php endif; ?>
Query to several specific Sites
<?php $query = new WP_Query(['network' => true, 'sites__in' => [1, 2, 3]]); ?>
<?php if ($query->have_posts()): ?>
<?php while ($query->have_posts()): $query->the_post(); ?>
<?php the_content(); ?>
<?php endwhile; ?>
<?php wp_reset_postdata(); ?>
<?php endif; ?>
Query excluding several specific Sites
<?php $query = new WP_Query(['network' => true, 'sites__not_in' => [1, 2, 3]]); ?>
<?php if ($query->have_posts()): ?>
<?php while ($query->have_posts()): $query->the_post(); ?>
<?php the_content(); ?>
<?php endwhile; ?>
<?php wp_reset_postdata(); ?>
<?php endif; ?>
Limit the number of posts per Site
<?php $query = new WP_Query(['network' => true, 'posts_per_site' => 1]); ?>
<?php if ($query->have_posts()): ?>
<?php while ($query->have_posts()): $query->the_post(); ?>
<?php the_content(); ?>
<?php endwhile; ?>
<?php wp_reset_postdata(); ?>
<?php endif; ?>
Parameters
| Name | Type | Description |
|---|---|---|
| network | boolint | Whether perform network-wide query. |
| sites__in | int[] | Blog IDs to include in the query. |
| sites__not_in | int[] | Blog IDs to excluded from the query. |
| posts_per_site | int | The number of posts per Site to retrieve. |