List Form Pages 2.1.0: templates, custom post types, and escaped embeds all make the column

List Form Pages for Gravity Forms puts a Pages column in your forms list: every page where each form lives, as links. Version 2.1.0 makes that column tell the whole truth. Forms rendered by theme templates, forms on custom post types, and embeds stored in escaped builder data all show up now.

What’s new in 2.1.0?

Version 2.0.1 promised that a form rendered by a theme template — a gravity_form() call in PHP — would be indexed the first time the page was viewed. The render watcher shipped with a scoping guard that kept the promise only for forms inside post content; a form rendered by the template around it was noticed, logged, and dropped. 2.1.0 removes the guard. A form rendered by a template, a template part, a widget, or a popup is now recorded against the page that rendered it, on first view. If you preferred the narrower behavior, one filter restores it.

Custom post types are now scanned out of the box. The old default list stopped at posts, pages, products, portfolios, and the builder libraries, so a form living on an “events” or “articles” type read “Not embedded” until you found the setting. Now every public post type is scanned unless you narrow the list yourself under Forms → Settings → List Form Pages.

Rounding it out:

  • Embeds stored in escaped form are detected: shortcodes inside ACF and other block-comment JSON, and backslash-escaped builder data.
  • Render-time detection survives builders and plugins that re-enter the content filter mid-render; before, that could blind it for the rest of the page.
  • The daily cleanup of render-time records no longer stops at the first 1,000 posts.
  • The Pages column lists the first 15 pages and counts the rest, so a footer form that appears everywhere cannot flood the Forms list.

Why it matters

A location column is only as good as its worst blind spot. You check it precisely when you can’t remember where a form went — which is exactly when a false “Not embedded” costs you. 2.1.0 spent its whole budget on the blind spots: templates, custom types, escaped data. The column is now something you can act on without second-guessing.

The bottom line

Version 2.1.0 is a free update for license holders — it should already be waiting on your Updates screen, and the index rebuilds itself in the background after the upgrade. Nothing to click. New here? Every purchase comes with a 14-day, no-questions-asked refund period. Grab List Form Pages →

Full changelog for 2.1.0

  • New: Forms rendered by theme templates, template parts, widgets, and popups are now recorded against the page that renders them, the first time that page is viewed — as the 2.0.1 notes promised. Until now, only forms rendered inside post content were recorded. (Return false from the gf_list_form_pages_record_out_of_content_renders filter to keep the narrower behavior.)
  • New: Every public post type is scanned by default, custom post types included. The old default list stopped at posts, pages, products, portfolios, and builder libraries.
  • Fixed: Embeds stored in escaped form are now detected — shortcodes inside ACF and other block-comment JSON, and backslash-escaped builder data.
  • Fixed: Render-time detection no longer goes blind for the rest of the page when a builder or plugin re-enters the content filter mid-render.
  • Fixed: The daily cleanup of render-time records no longer stops at the first 1,000 posts.
  • Improved: The Pages column lists the first 15 pages and counts the rest, so a form embedded site-wide cannot flood the Forms list.
  • The index rebuilds automatically in the background after this upgrade; no action needed.