Skip to content

🔌 Network-wide WP Query for Multisite environment, which supports POSTS-PER-SITE query etc. [STAND-ALONE][Plugin]

License

Notifications You must be signed in to change notification settings

devaloka/network-wp-query

Folders and files

NameName
Last commit message
Last commit date
Jan 8, 2016
Apr 9, 2017
Apr 4, 2017
Mar 29, 2017
Dec 31, 2015
Mar 29, 2017
Dec 31, 2015
Dec 31, 2015
Mar 29, 2017
Oct 23, 2016
Mar 29, 2017
Dec 31, 2015
Apr 9, 2017
Dec 31, 2015
Mar 29, 2017
Jun 12, 2017
Apr 9, 2017
Apr 9, 2017
Aug 20, 2020
Jan 18, 2016

Repository files navigation

Network WP Query

Latest Stable Version Latest Unstable Version License Build Status

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

  1. Just copy all files into <ABSPATH>wp-content/plugins/network-wp-query/.

Manual Installation (as a Must-Use plugin)

  1. Just copy all files into <ABSPATH>wp-content/mu-plugins/network-wp-query/.

  2. Move network-wp-query/loader/50-network-wp-query-loader.php into <ABSPATH>wp-content/mu-plugins/.

Installation via Composer

  1. Install via Composer.

    composer require devaloka/network-wp-query

Installation via Composer (as a Must-Use plugin)

  1. Install via Composer.

    composer require devaloka/network-wp-query
  2. Move network-wp-query directory into <ABSPATH>wp-content/mu-plugins/.

  3. Move network-wp-query/loader/50-network-wp-query-loader.php into <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.

References