Post Indexer

Bring every post across a network into one place greatly expanding the possibilities for how Multisite content is shared and managed.


  • ixed insert_or_get_taxonomy failing for duplicated terms.
  • ix XSS issue


April 28, 2015 - version
  • ixed insert_or_get_taxonomy failing for duplicated terms.
  • ix XSS issue

January 24, 2015 - version 3.0.6
  • ix Fatal error: Call to undefined method ProcessLocker::is_locked()

January 23, 2015 - version
  • Fix: Fatal error on activation.

January 23, 2015 - version
  • Fix: PHP notice for undefined index in global get array.
  • Fix: require_once relative paths causing undefined function errors
  • Add: lockfile, transient based flag for locking, another transient for storing that info.
  • Add: Improved indexation for aged posts

June 18, 2014 - version
  • ix: Fixes posts array on subsequent calls to get_posts() after instantiation of Network_Query.

April 16, 2014 - version
  • Added new Process Information widget to Network settings screen to show status of the 5 WP_Cron processes managed by Post Indexer.
  • Reworked Debug output messages to be more informative on Blog, Post, Etc being processed.
  • Tested on WP 3.9

March 14, 2014 - version
  • More changes to network_get_permalink() function
  • Added initial language translations files

March 13, 2014 - version
  • Refined function network_get_permalink()
  • Added of WPMU DEV Dashboard 3.0 hooks

March 12, 2014 - version
  • Corrected issue with Network Qeury where GROUP BY was only considering post_ID. Included blog_ID.
  • Corrected issue in function 'remove_term_relationships_for_post' where it was inheriting global blog_id instead of using the blog_id of the post being processed. This effected the relationship between the post and tags and blog.

January 14, 2014 - version
  • Fixed taxonomy usage issue in the network query.
  • Fixed bug which prevented posts indexing created by 3rd party apps.
  • Fixed CSS/JS assets loading issue for SSL driven backends.
  • Implemented new WPMUDev Dashboard notice class version.

August 4, 2013 - version
  • Fixed capability for network pages

March 29, 2013 - version 3.0.4
  • Added Meta Query class to allow for searching and sorting based on custom fields
  • Added check in rebuild query functionality to only queue blogs on the current network.

March 15, 2013 - version 3.0.3
  • Updated indexer to pull post types from the individual blogs tables for interface.

March 10, 2013 - version 3.0.2
  • Fixed rogue hard coded table prefix in tidy up post meta query.

March 6, 2013 - version 3.0.1
  • Fixed issue with excerpts filter being run on network excerpt

March 4, 2013 - version 3
  • Complete rewrite of the post indexer plugin includes:
  • - post indexer dashboard and statistics
  • - complete index rebuilding functionality
  • - global setting to pick which post types are indexed
  • - global setting to determine lifetime of index
  • - index rebuilding functionality on a site by site basis
  • - individual site statistics
  • - setting to pick which post types are indexed on a site by site basis
  • - ability to enable or disable indexing on a site by site basis
  • Upgrading:
  • Go to the Network Admin -> Settings -> Post Indexer page, click on the Rebuild Index tab and then click the Rebuild Index button to get the post indexer to start indexing your sites existing posts.

May 10, 2011 - version 2.1
  • Added post_type column to site_posts table
  • Added storing of non-post post types that are publicly queryable.

October 1, 2010 - version 2

    March 9, 2010 - version 1.0.8

      January 18, 2010 - version 1.0.7

        December 17, 2009 - version 1.0.6

          September 28, 2009 - version 1.0.5

            April 1, 2009 - version 1.0.4
            • WPMU 2.7 Compatible

            August 19, 2008 - version 1.0.2

              Downloads 32,222

              Compatibility Multisite 4.2.2 BuddyPress

              post indexer takes all the posts across your network and brings them into one spot behind the scenes.

              Use Post Indexer with other plugins as a foundation to display or manage posts in exciting new ways.

              A new way of sharing content

              Here’s an example of the Global Posts Widget in action. It pulls its data from the index created by Post Indexer.

              Recent Posts Widget takes advantage of the Post Indexer foundation

              Managing Posts from a Network

              Multisite is a great tool, as you probably already know. But one of its biggest limitations is the lack of control you have in managing or displaying posts from all the different sites in the network.

              At WPMU DEV, we’ve built an array of plugins that will help you do that. But before they can do what they’re designed to do, they need an index of all the different posts to pull from. This is where the Post Indexer comes in.

              But the Post Indexer does more than just build an index, it allows you to control exactly how you want to build it.

              • Don’t want to include a particular site in the index? … No problem.
              • Need to get a particular site indexed right away?…  No problem.
              • Want to see a rundown of which sites have the most posts in the index? … No problem.
              • Need to index Pages as well as Posts? … I think you guessed it — not an issue.


              Take a quick look at its features, and then we’ll check a few out in more detail below.

              • Designed to work seamlessly with heaps of other WPMU DEV plugins
              • Post Indexer dashboard and statistics for all sites
              • Individual site statistics
              • Index posts published prior to plugin activation (index rebuilding functionality)
              • Index rebuilding on a site-by-site basis
              • Choose post types to be indexed for all sites
              • Choose post types to be indexed on a site-by-site basis
              • Enable or disable indexing on a site-by-site basis
              • Global setting to determine lifetime of index

              Rethink what Multisite can do

              This plugin is the foundation for many powerful Multisite plugins.

              Adjust Post Indexer settings for even more flexibility and control. Disable a site from being indexed and a plugin like Recent Global Posts Widget will not show posts from that site.

              We want to help you truly harness the power of this plugin, so we came up with a whole heap of plugins that work together with Post Indexer to allow you to do many things:

              • Reader – turns your Multisite onto a community by adding in Tumblr, and Edublogs style ‘Follow’ features
              • Anti-splog – Ultimate plugin and service to stop and kills splogs
              • Blogs Directory – fully search-able, avatar inclusive, automatic and rather good looking directory of all sites on your network
              • Global Site Search – provides global search across all sites on your network with ease
              • Global Site Tags – Displays global site tag for your entire network
              • Tag feed – display a list of posts that have been tagged with a specific tag/category
              • Recent Global Posts – display a list of recent posts anywhere on your site via a simple shortcode or template function
              • Recent Global Posts Widget – Display latest posts from across your entire network – using a simple but powerful widget
              • Recent Global Comments Feed – RSS feed of latest comments from across your entire network
              • Recent Global Posts Feed – RSS feed of latest posts from across your entire network
              • Recent Global Author Comments Feed – Provides a global feed of comments from a single author made across multiple sites on the network
              • Recent Global Comments Widget – Display latest comments from across your entire network – using a simple but powerful widget
              • Live Stream – Display your own slick animated Live Stream Widget
              • User Reports – If you’ve been looking for a way to track user posts and comments across your network then look no further

              Post Indexer Backend

              Take a quick look at some of the settings from the Post Indexer backend.

              A quick glance at the statistics page

              And here’s a look at the ‘Most Indexed Sites’ graph up close.

              Easy to read graph layout

              Need to see the most indexed sites in a text layout? No problem.

              Switch to text view for raw numbers

              If you’re a Multisite owner, then Post Indexer is a must-have plugin. It does the building, and you do the controlling.

              For help with installing plugins please refer to our Plugin installation guide.

              To Use:

              This plugin by itself does not provide any features to your users. It’s simply a backend plugin that can be used to build other features.

              An example plugin demonstrating how the Post Indexer can be used is found here.

              1. Install the Post Indexer

              2. Visit Plugins in your Network Admin dashboard and Network Activate the Post Indexer plugin there.

              The Dashboard

              From your Network Admin section,  you can access the Post Indexer dashboard by going to Settings > Post Indexer. You should then land on a dashboard with three tabs at the top that look like this:


              When you first install the plugin, under the first tab labeled Statistics, you will probably not see anything. By default, the Post Indexer will only index posts created after installation.

              However, if you would like to index previously published posts, you can do so by going to the third tab — Rebuild Index.

              As the instructions in the Rebuild Index section warn, “This may take a considerable amount of time and could impact the performance of your server.”

              If you would like to index only selected sites, or if you would like to prevent certain sites from being indexed, then see the next section.

              Selecting Individual Sites to Index

              If you like, you can choose to manually index only certain sites, and you can also choose to prevent individual sites from being indexed at all.

              You can do this from the Network Admin area by going to Sites > All Sites. You should see a new column added here titled Indexing.


              From here you have a choice to:

              • Disable/Enable indexing
              • Edit the settings
              • Rebuild the index for that site only
              • See statistics for that site only

              Just click on the option you’d like for that individual site/blog.


              Choosing Post Types and Index Lifetime

              Finally, in the Global Settings tab, you can choose which post types you’d like to index (Posts, Pages, etc.), as well as how long  you would like the index to go back.


              Checking to Make Sure It Works

              Once you either add more posts or rebuild the index, you should start to see statistics about which sites have been indexed.

              Keeping in mind that this plugin is only used in conjunction with others, you might also check out a plugin like the Recent Global Posts Widget. If everything is working as it should, the Recent Global Posts Widget should populate with recent posts from your index.

              (Keep in mind that these other plugins draw from the index that the Post Indexer creates. And so if you have disabled indexing for a site, the posts from that site will not be included when a plugin like the Recent Global Posts Widget goes looking for it.)

              Troubleshooting Potential Problems

              If you run into problems, you may want to check for the following:

              First, make sure the post is published on a site with privacy set to “Allow search engines to index this site.” (Found in the regular admin area — not the Network Admin area — under Settings > Reading.)

              Next, there are a few config options at the top of post-indexer.php. Unless you’re in a very solid dedicated environment, we recommend leaving them as is.

              Check to Make Sure The Tables Installed Correctly:

              Post Indexer Tables
              And as always, if you have trouble, come talk to us in the Support Community. We’re here 24/7/365!