We have a multi-site wordpress blog with the following characteristics:
- “home” site [site #1] with dozens of pages, some custom post types, our own blog, etc.
- custom partner sites [site 2-N] each with their own customized blog and (at least) an “about us” page. Mostly a simple set of pages & posts.
I’d like to build a good search experience for users who are trying to find a particular partner’s pages:
- search for site 1 content has high quality (default wordpress search doesn’t seem to be very good)
- search also returns pages from sites 2-N, only for blogs that are public
- specific custom fields of posts on sites 2-N are indexed
- if content is found on site 2-N’s about page, the site’s home page is suggested in a separate area. ie. this is “partner results” rather than “content results”
- we don’t need to index tags, categories, etc. in fact based on how we are (ab)using them they might get in the way of good search
I am technical and can build something using whatever APIs are available, for instance Google custom search, etc. But I’d love it if there is already a network-wide search plugin that will let me configure this (or at least give me a head start and APIs.) Commercial plugins are okay.
Are there any good solutions or is custom development the best option?
There is actually an existing tool called Sitewide Tags that takes care of this.
Essentially, it creates an extra hidden site on your network and mirrors content from each of your other sites on it. Then, when you search, you search against the hidden site and get links back to the original content location.
I’ve used it once before on a client site, and I’ve been told it’s similar to the search-all-sites functionality used on large networks like WordPress.com.
I also purchased an ebook some time ago (written by some highly competent WP pros) that walks you through configuring and using such a system.