Installation

Install Grid Panda, activate it, and let WordPress run the automatic setup that creates all database tables, registers default options, and wires every subsystem — the indexer, REST API, shortcodes, blocks, and integrations.

System Requirements

ComponentMinimumRecommended
PHP8.18.2+
WordPress6.26.5+
MySQL5.78.0+
WooCommerce (optional)7.08.0+
ACF Pro (optional)6.0Latest
Elementor (optional)3.0Latest
Permalinks required for clean filter URLs. Go to Settings → Permalinks and choose any structure other than Plain. Query-string filtering (?fx_color=red) works without pretty permalinks, but SEO clean URLs (/shop/filter/color-red/) require them.

Installation Steps

  1. 1

    Upload the plugin ZIP

    Go to Plugins → Add New → Upload Plugin and select the Grid Panda ZIP file. Click Install Now.

  2. 2

    Activate the plugin

    Click Activate Plugin. Activation triggers automatic database setup — no manual SQL or CLI step is required.

  3. 3

    Open the Grid Panda dashboard

    A new Grid Panda menu appears in the admin sidebar. Open it to confirm the React builder app loads and shows the Dashboard stats panel.

  4. 4

    Verify active integrations

    Go to Grid Panda → Settings → Integrations. Grid Panda auto-detects WooCommerce, ACF, Elementor, WPML, and Polylang — confirm the correct ones are shown as active.

  5. 5

    Run a full reindex

    If the site already has content, go to Grid Panda → Index Status and click Reindex All. This populates the wp_gridpanda_index table so facet counts are accurate.

What Happens on Activation

The activation hook runs the schema installer and registers all default option values. No manual database setup is required.

Database Tables Created

TablePurpose
gridpanda_facetsFacet definitions — name, slug, type, source, post_type, JSON config
gridpanda_gridsGrid definitions — layout, source_config JSON, card_template, grid_config JSON
gridpanda_cardsCard templates — template HTML/JSON, custom CSS styles
gridpanda_indexFacet index — one row per post × facet × value × language combination
gridpanda_queueAsync job queue — reindex jobs, batch operations, with status and retry tracking
gridpanda_migrationsSchema migration history — prevents re-running applied migrations

Default Options Registered

Option KeyDefaultDescription
gridpanda_enable_cachingtrueEnable REST API response caching
gridpanda_cache_ttl3600Cache lifetime in seconds (1 hour)
gridpanda_index_batch_size100Posts processed per indexing batch
gridpanda_rest_cache_ttl3600REST response cache TTL
gridpanda_enable_etagtrueETag support for 304 Not Modified responses
gridpanda_version1.0.0Installed plugin version (used for migrations)

Subsystems Initialized

REST API: All 40+ endpoints registered under /wp-json/gridpanda/v1/
Indexer & Queue: IncrementalIndexer hooks wired to post save/delete/meta/terms actions
Shortcodes: [gridpanda_grid] and [gridpanda_facets] registered
Gutenberg Blocks: gridpanda/grid and gridpanda/facets blocks registered for the block editor
Elementor Widgets: Grid Panda widgets registered if Elementor is active
SEO Layer: SeoManager, UrlRewriter, and SitemapProvider initialized
Integrations: WooCommerce, ACF, WPML, Polylang auto-detected and booted
Admin UI: Builder app, list tables, and settings pages registered

Plugin Constants

These constants are defined in the main plugin file and available throughout the codebase:

GRIDPANDA_VERSION   = '1.0.0'
GRIDPANDA_FILE      = /path/to/grid-panda.php
GRIDPANDA_PATH      = /path/to/grid-panda/
GRIDPANDA_URL       = https://example.com/wp-content/plugins/grid-panda/
GRIDPANDA_BASENAME  = grid-panda/grid-panda.php
GRIDPANDA_MIN_WP    = '6.2'
GRIDPANDA_MIN_PHP   = '8.1'

Troubleshooting

Builder app is blank or shows JS errors

Open browser DevTools → Console. Check for 4xx/5xx on the initial data fetch to /wp-json/gridpanda/v1/settings or /wp-json/gridpanda/v1/dashboard/stats. Both require manage_options. Confirm no security plugin is blocking admin REST routes.

Database tables not created

Deactivate and reactivate the plugin to re-run the schema installer. If errors persist, check the PHP error log for wpdb errors. The plugin requires CREATE TABLE privileges on the WordPress database user.

Shortcode renders nothing

Verify the grid ID or slug exists in Grid Panda → Grids. The shortcode accepts id or slug: [gridpanda_grid id="5"] or [gridpanda_grid slug="my-grid"]. If no posts show, run a reindex from Grid Panda → Index Status.

Clean filter URLs return 404

Go to Settings → Permalinks and click Save Changes (even without changing anything) to flush WordPress rewrite rules. Then confirm gridpanda_seo_clean_urls_enabled is true in Grid Panda → Settings.

Facet counts are wrong after import

Run a full reindex from Grid Panda → Index Status → Reindex All. The index table is not rebuilt automatically after WP imports or database migrations.