Gridbuilder ᵂᴾ is a WordPress plugin which allows to query WordPress content (post types, users or taxonomy terms), to layout it in a grid or carousel and to filter it by WordPress fields (title, date, etc..), custom fields or taxonom terms.
Gridbuilder ᵂᴾ is accessible to all WordPress users and to developers. The plugin comes with a powerful admin interface from where you can set every aspect and detail of the plugin. And if you need to go a step further, Gridbuilder ᵂᴾ comes a with a complete PHP and JS API to extend possibilities.
Faceted search or faceted navigation are useful ways of enabling users to filter what they’re searching for by different criteria. The aim of a faceted search, unlike a classic filtering system, is to narrow down results to what the searcher expects when filtering.
In order to efficiently filter content, each facet (filter area) are indexed in an custom index table. It means, that everytime you create a facet, the plugin fetches all facet values according to your facet settings. This process is called indexing and simply allows to “prefetch” results and to store them in a simple and indexed table.
The index table allows to fastly look up at results for a filtered state. This index table also allows to unify all source types (taxonomy terms, post/user/term fields and custom fields). Without using a such indexer, filtering will be pretty slow due to the way WordPress tables are implemented.
Thanks to the indexer, the facet system is pretty fast. However, the loading speed when filtering will also depend on your server, the number of posts, the number of facets, WordPress, quality of plugins and theme, etc..
WordPress uses MySQL/MariaBD for the database. Because of this technology and the architecture of the tables, performance optimization is very limited from a plugin. We are constrained to this architecture and technology which will limit the scalability on a large number of posts.
As rule of thumb, more you have content to filter more it will take time. Filtering thousands of posts (or event more) is possible and generally works fine. However, depending on the server performances, filtering may be slower or may reach the server limits. As a general rule, we do not recommend filtering more than 50,000 posts.