Put Your Database on Any WordPress Page.
Filterable. Editable. No Coding.

NMR jsGrid connects your MySQL tables to WordPress pages via shortcode — with AJAX pagination, column filtering, sorting, and full frontend CRUD out of the box.

The problem every WordPress developer hits

Your data is in MySQL. Your site is WordPress.
Getting them to talk is harder than it should be.

😤

TablePress says “not possible”

Ask the TablePress author about frontend editing. The answer hasn’t changed in years: “Only possible from the WordPress admin dashboard.” Users who need staff to edit records from a page are stuck.

💸

wpDataTables is $69–$239/year

For a simple “display this SQL table with edit capability” use case, that’s a heavy subscription. And it’s complex — built for enterprise scenarios with charts, Excel imports, and nested tables you’ll never need.

🐌

Client-side plugins break on large data

Plugins that load all rows into HTML work fine at 50 rows. At 5,000 rows, the page is slow to load, your full dataset is visible in the page source, and filtering often breaks pagination entirely.


NMR jsGrid does one thing, and does it well

Paste a SQL SELECT query. Configure columns. Drop a shortcode. Your data is live on the page — filterable, sortable, paginated, and (optionally) fully editable by users.

⚡ Server-Side AJAX

Only the current page of data loads. Filtering and pagination run as SQL queries. Works identically on 100 rows or 100,000 rows. Full dataset never touches the browser.

✏️ Frontend CRUD

Enable editing, inserting, and deleting per grid. Users edit rows inline, add records via a built-in insert form, and delete with a confirm action — all without WordPress admin access.

🗄️ Any MySQL Table

WordPress core tables, WooCommerce tables, custom plugin tables, legacy application tables — if your WordPress DB user can SELECT from it, you can display and edit it.

🔍 Column Filtering + Sorting

Filter inputs above each column. Sort by clicking headers. Results update via AJAX. Pagination always reflects the filtered count — not the total table size.

📎 Shortcode Embed

One shortcode per grid:

. Works in pages, posts, widgets, and any theme that supports shortcodes. No page builder required.

🔌 Three Data Sources

SQL query, static JSON array, or custom AJAX endpoint. SQL handles most cases. Remote lets you add custom PHP logic — validation, permissions, computed fields — while the grid handles the UI.


From SQL query to live table in under 5 minutes

  • Install the plugin from WordPress.org
  • Create a new grid, give it an ID
  • Set data source to SQL, enter your SELECT query
  • Configure columns — name, type, filterable/sortable
  • Enable editing, inserting, deleting if needed
  • Add shortcode to any page:

Example: Inventory Grid

-- Data Source: SQL
SELECT id, product_name, sku,
       quantity, location
FROM wp_inventory

-- Write Table: wp_inventory
-- Enable: Editing, Inserting, Deleting

-- On any page:

Result: a filterable, sortable, paginated table where your team can edit stock quantities, add products, and delete records — from a password-protected WordPress page, no admin access required.


Built for these use cases

📦 Inventory Management

Staff update stock quantities, locations, and SKUs from a protected WordPress page. No WooCommerce admin needed. Works with any custom inventory table.

👥 Member & Employee Directories

Filterable directory that HR can update from the frontend. Search by department, name, or location. Members see their own data; HR edits it.

📋 Order & Ticket Tracking

Display custom order data, support tickets, or project records. Filter by status, date range, or customer. Staff update status fields inline.

🏗️ Agency & Freelance Projects

Build client-facing data management interfaces without custom development time. Hand clients a working admin panel on their own WordPress site.

🔬 Legacy Data Display

Have a legacy application with data in MySQL? Surface that data on a WordPress page — with filtering, pagination, and optional editing — without migrating the data.

📊 Form Submission Dashboards

Display data collected by Contact Form 7, Gravity Forms, or any plugin that writes to a custom table. Filter and review submissions from a clean frontend interface.


Free vs Pro

Free

$0

  • Up to 10 grids
  • SQL, Static, Remote data sources
  • AJAX pagination, filtering, sorting
  • Frontend editing, inserting, deleting
  • All column types (text, number, date, checkbox, textarea)
  • Select field type — Pro only
  • Build columns from data source — Pro only
  • Priority support — Pro only

Pro ⭐

One-time payment — no subscription

  • Unlimited grids
  • SQL, Static, Remote data sources
  • AJAX pagination, filtering, sorting
  • Frontend editing, inserting, deleting
  • All column types including Select field
  • Build columns from data source — auto-detect columns from SQL query
  • Priority support

Learn more

Detailed guides for the most common use cases.

When does NMR jsGrid help?

A plain-language overview of the problems it solves — and the exact users it’s built for. Start here if you’re not sure this is the right tool.

Read: When NMR jsGrid helps you →

Display SQL query results on a WordPress page

Step-by-step: connect a SELECT query to a WordPress page shortcode. Covers pagination, filtering, and why most table plugins can’t do this natively.

Read: Display SQL query results →

NMR jsGrid vs wpDataTables

Feature and price comparison. When wpDataTables is the right choice, and when NMR jsGrid is all you need for a fraction of the cost.

Read: NMR jsGrid vs wpDataTables →

WordPress table with AJAX filtering and pagination

Why client-side filtering breaks on large tables, and how server-side AJAX solves it. Includes setup guide and a comparison of both approaches.

Read: AJAX filtering and pagination →

Ready to put your data on the page?

Start free. Upgrade when you need more than 10 grids.

Sample grid