New on the blog: why AI belongs in the feed →

//

Gil Amminadav

Last updated: November 4, 2026. Every plugin covered here is re-checked weekly for new and changed shortcodes.

The Gravity Forms ecosystem has more than 60 shortcodes, and no single page documents them all. Gravity Forms documents its own. GravityKit documents GravityView and its add-ons. Gravity Wiz, Gravity Flow and Gravity PDF each document theirs. Third-party plugins and snippet libraries add dozens more that most people never find. This reference puts all of them on one page: every tag, every attribute we could verify, and the gotchas that cost us time on real client builds.

We have built on Gravity Forms, GravityView and Gravity Flow for over a decade, and we ship the GravityOps plugin suite on top of them. Everything below was checked against plugin source code or official documentation, and the tags were confirmed as registered on a live production multisite. The method is described below.

Key takeaways

  • Gravity Forms core gives you one embed shortcode with two interchangeable tags, [gravityform] and [gravityforms], plus action modes that add-ons extend (conditional, user, login, polls and more).
  • WordPress cannot nest a shortcode inside itself. That is why [gvlogic2], [gvlogic3], [gravitymath2] and [gravitymath3] exist. There is no [gvlogic4]. Global Variables for GravityMath lifts the limit by resolving nested variables from the inside out.
  • Any shortcode that prints entry data shows it to everyone who can load the page. Gate the page, or use the plugin’s own protection (GravityKit’s secret, GravityOps Charts’ private-by-default access).
  • The legacy [gfsearch] tag is no longer registered. Use [gravops_search].
  • To print a shortcode as text instead of running it, double the brackets: [[gravityform id="1"]].

Contents

  1. How we verified this list
  2. The master list: every shortcode at a glance
  3. Ground rules that apply to every shortcode
  4. Gravity Forms core and official add-ons
  5. GravityKit: GravityView, GravityMath, GravityCharts, GravityCalendar, GravityExport, GravityBoard
  6. Gravity Flow
  7. Gravity PDF
  8. Gravity Wiz: Gravity Perks and snippets
  9. GravityOps plugins
  10. BrightLeaf Digital snippet directory
  11. Common mistakes and outdated advice
  12. FAQ

How we verified this list

Most shortcode lists online are copied from other shortcode lists. We went to the source instead, in three passes:

  1. Source code. Where the code is available to us, we read the add_shortcode() call and the shortcode_atts() defaults directly. That covers every GravityOps plugin, Gravity PDF, GravityMath’s summary mode, GP Advanced Save & Continue, and every snippet in our public snippets repository.
  2. Official documentation. For everything else we used the vendor’s own docs, not third-party summaries. Each section links to the page we used.
  3. A registration probe on a live site. WordPress turns [[tag]] into [tag] only when the tag is registered, without running it. We put every candidate tag on a draft on our production multisite and checked which ones WordPress recognized. That is how we confirmed details the docs leave out, such as the [gravitymath3] and [gv_math] aliases, and caught tags that no longer exist.

Last verified: November 4, 2026. Where a detail could not be confirmed from source or official docs, we say so rather than guess.

The master list: every shortcode at a glance

Jump to any section for the full attribute reference.

Shortcode Plugin What it does
[gravityform] / [gravityforms] Gravity Forms Embed a form; also the host for every action mode below
[gravityforms action="conditional"] Gravity Forms Show content when a merge tag meets a condition
[gravityforms action="user"] GF User Registration Print a WordPress user field
[gravityform action="login"] GF User Registration Login form
[gravityform action="polls"] GF Polls Poll form or results
[gravityview] GravityView Embed a View
[gventry] GravityView Embed one entry (or its Edit form)
[gvfield] GravityView Print one field from one entry
[gvlogic] [gvlogic2] [gvlogic3] GravityView Conditional content, with two nesting levels
[gv_entry_link] [gv_edit_entry_link] [gv_delete_entry_link] GravityView Link to view, edit or delete an entry
[gravityview_widget_pagination_info] [gravityview_widget_page_links] GravityView Pagination text and links inside a View
[gravitymath] [gravitymath2] [gravitymath3] [gv_math] [gvmath] GravityMath Calculations across entries, forms and Views
[gravitymath action="summary"] GravityMath Grouped summary table
[gravitycharts] GravityCharts Embed a chart feed
[gravitycalendar] + 3 helpers GravityCalendar Calendar, subscribe link, copy and export buttons
[gravityexport_download_url] [gfexcel_download_url] GravityExport (Lite) Download URL for a form’s export
[gravityboard] GravityBoard Embed a board
[gravityflow] Gravity Flow Inbox, status, submit and reports pages
[gravitypdf] Gravity PDF PDF download or view link
[gpls] GP Limit Submissions Remaining, used or total submission count
[gpqr] GP QR Code QR code or barcode image
[gpbua] GP Better User Activation Activation content for page builders
[gpasc_drafts] GP Advanced Save & Continue List a user’s saved drafts
[gravityforms action="inventory"] GP Inventory Show stock levels
[gravityforms action="meter"] Gravity Wiz Progress Meter Goal progress bar
[gravityforms action="entry_count"] / "entries_left" / "split_test" Gravity Wiz snippets Counts and simple form split tests
[gravops_search] GravityOps Search Search entries and print the results anywhere
[gravityops_chart] GravityOps Charts Chart.js chart built from entries
[gvfgm_var] Global Variables for GravityMath Resolve global variables inside any content
[gofrm_index] [gofrm_forum] [gofrm_topic] [gofrm_profile] GravityOps Forum Forum index, forum, topic and profile views
[goaif_button] [goaif_stream_button] [goaif_image_button] [goaif_image_preview] GravityOps AI Feed Front-end AI text and image generation inside a form
[rfsfgf_overview] [rfsfgf_entry_widget] Recurring Form Submissions Admin views of recurring series
14 tags BrightLeaf Digital snippet directory Copy buttons, A/B tests, countdowns, tabs, modals, filtered exports, progress meters, carousels, accordions, pricing tables, plugin widgets

Ground rules that apply to every shortcode

Quote every attribute value

WordPress accepts unquoted values, but a value with a space, a merge tag or a comma breaks without quotes. Use straight double quotes. Curly quotes pasted from a word processor are the most common reason a working shortcode suddenly prints as text. One exception: inside a [gravops_search] display attribute, which is itself double-quoted, nested shortcodes and their attributes take single quotes. Mixing the two breaks the shortcode.

A shortcode cannot contain itself

WordPress matches the first closing tag it finds, so [gvlogic] inside [gvlogic] closes the outer block early. Plugins work around this by registering numbered copies of the same handler. GravityView registers [gvlogic2] and [gvlogic3]. GravityMath registers [gravitymath2] and [gravitymath3]. GravityOps Search avoids the problem with its {{ }} syntax for nested shortcodes, covered in its section below. Global Variables for GravityMath removes the limit altogether: put the inner block in a variable and reference it from the outer one. The plugin resolves the deepest variable first and hands each layer to its own shortcode, so there is no depth limit and no numbered copies to run out of (how nesting works).

Shortcodes and merge tags are different things

Merge tags ({Name:1}, {entry_id}) are replaced by Gravity Forms in notifications, confirmations and other places that have an entry to read from. Shortcodes are replaced by WordPress wherever content runs through do_shortcode(). Many shortcodes below accept merge tags inside their attributes, which only works where Gravity Forms replaces merge tags first, such as a confirmation or a GravityView Custom Content field.

Printing a shortcode as text

Double the brackets: [[gravityform id="1"]] prints [gravityform id="1"] and runs nothing. This only works for registered tags; an unregistered tag prints both sets of brackets. That difference is exactly how we ran the registration probe for this guide.

Data-printing shortcodes ignore who is looking

[gravops_search], [gvfield], [gventry] and [gravitymath scope="form"] print whatever you point them at to anyone who can load the page. Protect the page itself with a membership plugin, role check or password. GravityKit adds a secret attribute for Views with Enhanced Security turned on. GravityOps Charts defaults to private, and Recurring Form Submissions renders nothing for users without its management capability.

Gravity Forms core and official add-ons

[gravityform] and [gravityforms]: embed a form

Both tags are registered by Gravity Forms core and route to the same handler, so they are interchangeable. The convention is [gravityform] to embed a form and [gravityforms] with an action. Source: Gravity Forms form shortcode docs.

[gravityform id="1" title="false" description="false" ajax="true" field_values="check=First Choice,Second Choice" theme="orbital"]
Attribute Default What it does
id required Form ID.
title true Show the form title.
description true Show the form description.
ajax false Submit without a page reload.
tabindex 0 Starting tab index. Leave at 0 unless you have a specific accessibility reason.
field_values — Pre-populate fields that have Allow field to be populated dynamically turned on, as parameter=value pairs joined by &.
theme — orbital or gravity (the 2.5 theme).
styles — JSON-encoded style overrides for the Orbital theme.

Plugins add attributes to this shortcode too. Gravity Wiz’s Cache Buster plugin adds cachebuster="1" to load the form through AJAX on cached pages.

[gravityforms action=”conditional”]

Shows the enclosed content only when a merge tag meets a condition. It is built for notifications and confirmations, where merge tags have an entry to resolve against. Source: Gravity Forms conditional shortcode docs.

[gravityforms action="conditional" merge_tag="{Department:3}" condition="is" value="Finance"]
This line only appears for Finance submissions.
[/gravityforms]
Attribute Default What it does
merge_tag required The merge tag to test. Add :value to compare stored choice values instead of labels, which matters for checkboxes.
condition required is, isnot, greater_than, less_than, contains, starts_with, ends_with.
value required Value to compare against. condition="isnot" value="" means “has any value”.

Gravity Forms states that nested conditional shortcodes are not supported, and the shortcode takes one condition. Gravity Wiz publishes an Advanced Conditional Shortcode snippet for multiple conditions.

[gravityforms action=”user”] (User Registration add-on)

Prints a WordPress user field. Source: User Information shortcode docs.

[gravityforms action="user" key="nickname"]
Attribute Default What it does
key required User meta key or user object key, such as nickname or display_name.
id current user Numeric user ID.
output — raw (JSON), csv or list (HTML list) for array values. All output is escaped.

[gravityform action=”login”] (User Registration add-on)

A login form that switches to a logged-in panel after login. Source: login shortcode docs.

Attribute Default What it does
title true Show the form title.
description false Show the form description.
logged_in_avatar true Show the avatar when logged in.
logged_in_message — Message shown to logged-in users.
login_redirect — URL to send users to after login.
logout_redirect — URL to send users to after logout.
registration_link_display true Show the registration link.
registration_link_text Register Registration link text.
forgot_password_display true Show the Forgot Password link.
forgot_password_text Forgot Password Forgot Password link text.
tabindex — Custom tab index.
theme — orbital or gravity. Legacy markup is not supported on the login form.

[gravityform action=”polls”] (Polls add-on)

Embeds a poll, or only its results. Source: poll shortcode docs.

[gravityform action="polls" id="4" mode="results" field="2" percentages="true" counts="false"]
Attribute Default What it does
id required Form ID.
field all poll fields Comma-separated poll field IDs to include.
mode poll poll or results.
style green red, green, orange or blue.
cookie — Block repeat votes for 1 day, 1 week, 1 month or until a YYYY-MM-DD date.
show_results_link true Link to the results without voting.
display_results true Show results after voting.
percentages true Show percentages.
counts true Show vote counts.
title / description true Show the form title and description.
confirmation false Show the confirmation message.
ajax false AJAX submission.
tabindex — Custom tab index.

GravityKit

GravityKit’s add-on shortcode reference lists the tags. The attribute tables below come from each product’s dedicated doc, with gaps filled from the installed source. Most GravityKit shortcodes accept secret, which is required when the View, chart or calendar has Enhanced Security turned on.

[gravityview]: embed a View

[gravityview id="42" secret="a1b2c3d4" search_field="5" search_value="Approved" sort_field="date_created" sort_direction="DESC" page_size="25"]
Attribute Default What it does
id required View ID.
secret — The View’s secret, when Enhanced Security is on.
search_field — Field ID or meta key (such as created_by) that search_value applies to.
search_value — Only show entries containing this value.
search_operator contains is, isnot, in, not in, greater_than, less_than, greater_than_or_is, less_than_or_is, contains, starts_with, ends_with, like.
start_date / end_date — YYYY-MM-DD or a relative date.
sort_field — Field to sort by.
sort_direction — ASC, DESC or RAND.
page_size View setting Entries per page. -1 shows all.
offset — Skip this many entries.
post_id — Page the View is embedded on, used as the base for entry links.
detail — Print a number instead of entries: total_entries, page_size, first_entry or last_entry.
class — Extra CSS class on the wrapper.
single_title post title Title on the Single Entry page.
back_link_label ← Go back Label of the Single Entry back link.

Source: Using the [gravityview] shortcode. [gravityview id="42" detail="total_entries"] is an easy way to print a live count without GravityMath.

[gventry]: embed one entry

Attribute Default What it does
entry_id required Entry ID, slug, first or last (using the View’s sort and filters).
view_id required View the entry is displayed through.
edit — 1 shows the Edit Entry form instead.
secret — Required when the View has Enhanced Security on.

An entry hidden by the View’s filters or approval settings does not display even when you ask for it by ID. Source: [gventry] docs.

[gvfield]: print one field

[gvfield view_id="42" entry_id="" field_id="7" choice_display="label"]
Attribute Default What it does
view_id required View the field comes from.
entry_id required Entry ID, first, last, or a merge tag such as .
field_id required Field ID, or date_created, id, created_by, entry_link, edit_link.
secret — Required with Enhanced Security.
choice_display value label or value for choice fields.
entry_link_text / edit_link — Link text when field_id is entry_link or edit_link.

Any other attribute is passed through as that field’s View setting. Source: [gvfield] docs.

[gvlogic], [gvlogic2], [gvlogic3]: conditional content

The most-used GravityView shortcode, and it works outside Views too: in Custom Content fields, widgets, and Gravity Forms confirmations and notifications. Source: [gvlogic] docs.

[gvlogic if="{Status:4}" is="Approved"]
  Approved on .
  [gvlogic2 if="{Amount:6}" greater_than="1000"]Needs a second signature.[/gvlogic2]
[else if="{Status:4}" is="Pending"]
  Still under review.
[else]
  Not approved.
[/gvlogic]
Part What it does
if The value to test, usually a merge tag. Required unless you only use logged_in.
is / equals, isnot Exact match or mismatch.
contains, not_contains Substring match.
starts_with, ends_with Prefix and suffix match.
in, not_in Match against a comma-separated list or JSON array.
greater_than, less_than Numbers, prices and dates.
greater_than_or_is, less_than_or_is Aliases greater_than_or_equals and less_than_or_equals.
logged_in true for logged-in visitors, false for logged-out. Combines with the other tests.
else Single-line fallback text, as an attribute.
[else], [else if="…"] Multi-line fallback and chained conditions inside the block.
if="context" Test where the shortcode is rendering: multiple, single, edit or singular.
|| and && OR and AND inside one value, with no spaces: ends_with="@icloud.com||@me.com".

Our probe confirmed that GravityView registers [gvlogic2] and [gvlogic3] for nesting, giving you three levels. [gvlogic4] does not exist. Relative dates (“today”, “-1 week”) work in field conditional logic but not in [gvlogic] comparisons.

[gv_entry_link], [gv_edit_entry_link], [gv_delete_entry_link]

[gv_entry_link action="edit" view_id="42" entry_id="{entry_id}" lightbox="true"]Update your application[/gv_entry_link]
Attribute Default What it does
view_id the current View View that shows the entry. Required outside a View.
entry_id the current entry Entry ID, first or last. Required outside a View.
action read read, edit or delete.
secret — Required with Enhanced Security when used outside the View.
post_id — Page that embeds the View, so the link opens there.
lightbox — true opens the entry or edit form in a lightbox.
return html html for a link, url for the bare address.
link_atts — Extra HTML attributes as name=value pairs joined by &.
field_values — Query parameters to add. With action="edit", they also pre-fill empty dynamically populated fields.

[gv_edit_entry_link] and [gv_delete_entry_link] are shorthand for the matching action. Edit and delete links only render for users allowed to edit or delete that entry. Source: [gv_entry_link] docs.

[gravityview_widget_pagination_info] and [gravityview_widget_page_links]

Print “Displaying 1–25 of 140” and the page links. GravityKit documents both. They only render while a multiple-entries View is on the page; they print nothing on a Single Entry page, and in our probe they were not registered outside a View render.

[gv_age] and [gv_pageviews]

GravityKit’s overview page lists both, but neither ships in GravityView itself. [gv_age] is a code snippet (attributes entry_id, field_id, format, hide_errors) and [gv_pageviews] needs the separate Pageviews plugin.

[gravitymath] and its aliases

Calculates across one entry, a form, a View, or the entries currently visible. Our probe confirmed five registered tags on the same engine: [gravitymath], [gravitymath2], [gravitymath3], [gv_math] and [gvmath]. Use the numbered ones to nest calculations that pull from different forms. Source: [gravitymath] docs.

[gravitymath scope="form" id="12" filter="filter_4=Paid&op_4=is" decimals="2"]{Amount:6:sum} / {entry_count}[/gravitymath]
Attribute Default What it does
formula — Formula as an attribute instead of between the tags.
scope — form, entry, view or visible. Unset means plain arithmetic.
id — Form, entry or View ID, matching scope.
secret — Required for scope="view" on Views with Enhanced Security.
filter — filter_N=value&op_N=is pairs plus limit. Operators: is, isnot, contains, notcontains, gt, lt. For a second condition on the same field, prefix the form ID: filter_9:4.
decimals as calculated Decimal places (up to 16).
format — raw skips number formatting.
default_value — Value for empty fields, or skip.
notices false Show warnings to visitors.
debug — true shows admins a formula and error report.

Merge tag modifiers inside the formula: :sum (default), :avg, :min, :max, :count. {entry_count} ignores filter; use {Field:N:count} to count filtered entries.

[gravitymath action=”summary”]: grouped summary tables

Added in GravityMath 2.5 and easy to miss, because the main shortcode docs barely mention it. It groups entries by a field and prints a table with one calculated row per group. Attributes below come from the plugin source.

[gravitymath action="summary" form_id="12" group_by="3" operation="sum" number_field="6" sort_by="field-asc" display="all"]
Attribute Default What it does
form_id — Form to summarize.
id — A View ID instead of form_id. The View’s form and filters are used.
group_by — Field ID to group by.
group_by_label — Column header for the group.
operation count Calculation per group. The source example uses sum with number_field.
operation_label — Column header for the result.
number_field — Field the operation runs on.
decimals — Decimal places.
sort_by field-asc Row sort order.
display all Which groups to show.
filter — Same filter syntax as [gravitymath].
use_values — Group by stored choice values instead of labels.

[gravitycharts]

Attribute Default What it does
id required Chart ID.
secret — Required when chart security is on.
width / height — Maximum size in pixels. Image charts need both.
embed_type — image renders a static image instead of an interactive chart.
entry — Chart only this entry’s data.

Source: [gravitycharts] docs. GravityCharts also has a {gravitycharts} merge tag for emails. Not to be confused with GravityOps Charts’ [gravityops_chart], covered below.

GravityCalendar: four shortcodes

Shortcode Attributes
[gravitycalendar] id (required), height (CSS length or auto), secret
[gravitycalendar_link] id, text (default “Subscribe to Calendar”), webcal (1/0, default 1), target (_self/_blank), html_link (0 prints the bare URL), event_id (0 = whole feed, or one entry), secret
[gravitycalendar_copy_button] id, secret. Copies the feed URL.
[gravitycalendar_export_button] id, secret. Downloads an .ics file.

Source: GravityCalendar shortcode docs.

GravityExport: [gravityexport_download_url]

Prints the download URL for a form’s export feed. From the GravityExport Lite source: it takes id (form ID) and an optional type to override the file type. The older [gfexcel_download_url] tag is still registered for backward compatibility, and a {gravityexport_download_url} merge tag does the same job in notifications.

GravityBoard: [gravityboard]

[gravityboard id="1"] embeds a board. id is the only documented attribute; copy the shortcode from the Shortcode column of the form’s board list. Source: GravityBoard docs.

Gravity Flow

One shortcode, [gravityflow], with a page attribute that picks the screen: inbox, status, submit or reports. Put each on its own WordPress page. Source: Gravity Flow shortcode docs.

[gravityflow page="inbox" form="7" fields="1,3,6.3" due_date="true" timeline="false"]
Attribute Applies to What it does
id_column, submitter_column, step_column inbox, status Show or hide those columns (true/false).
actions_column inbox Approve/reject buttons in the list.
due_date inbox, status Due date column. Default off.
form inbox, status, reports Limit to one form. Required with fields.
fields inbox, status Extra field columns, e.g. 1,2,6.3. Needs shortcode security enabled.
title inbox, status Custom title.
timeline, step_status, workflow_info, sidebar entry detail Show or hide those panels. All default on.
back_link, back_link_text, back_link_url entry detail The “Return to list” link.
display_all status Show every entry regardless of capability. Needs shortcode security enabled.
allow_anonymous inbox, status Show entries to logged-out visitors. Needs shortcode security enabled.
legacy inbox Load the pre-2.8 static inbox.
range reports last-3-months, last-6-months, last-12-months.
category reports month, assignee or step.
step_id, assignee reports Preselect a step or an assignee (user_id|15, role|editor, email|a@b.com).
display_filter reports Show the filter bar. Default on.

The three attributes marked as needing shortcode security only work after you enable it under Workflow → Settings, because they can widen who sees what.

Gravity PDF

[gravitypdf] prints a link to a generated PDF. We checked the attribute list against the Gravity PDF source and the official docs.

[gravitypdf id="6063bd0362dda" text="Download your receipt" signed="1" expires="7 days"]
Attribute Default What it does
id required PDF ID, from the sample shortcode in the PDF list.
text Download PDF Link text.
type download download or view.
signed — 1 creates a URL anyone with the link can open until it expires.
expires global timeout Lifetime of a signed URL, e.g. 7 days.
class gravitypdf-download-link CSS class(es) on the link.
print — 1 opens the print dialog (browser-dependent).
raw — 1 prints the bare URL.
entry — Entry ID. Required outside Gravity Forms contexts; also read from entry or lid in the URL.
name — Label only. Has no effect on output.

It works in text and redirect confirmations, notifications, and on any page when an entry ID is available. Inside HTML attributes, use the merge tag form instead: .

Gravity Wiz: Gravity Perks and snippets

Gravity Perks add four standalone shortcodes and one action mode. We confirmed all four tags on our live install; [gpasc_drafts] attributes come from the plugin source.

Shortcode Perk Attributes
[gpls] Limit Submissions form (required), action (remaining default, count, limit), feed (Limit Feed ID). Feeds with field-value rules can’t be counted this way. Docs
[gpqr]...[/gpqr] QR Code Encodes the enclosed content. format (html default, url), size (200), sizefactor, bg_color, fg_color, type (barcode type). Docs
[gpbua] Better User Activation No attributes. Places the activation content in page-builder layouts. Docs
[gpasc_drafts] Advanced Save & Continue form_id (or id), form_path, title, fallback_message, user_id (default: current user; other users’ drafts only for people who can view entries).
[gravityforms action="inventory"] Inventory id, field, scope_values. Enclosed template tags: {label}, {value}, {available}, {limit}, {count}. Docs

Gravity Wiz’s free plugins and snippet library add more [gravityforms] actions. Each needs that plugin or snippet installed. Details are from Gravity Wiz’s own shortcode guide:

Action Source Attributes
action="meter" GF Progress Meter plugin id, field, goal, count_label, goal_label
action="entry_count" snippet id, status (total default, unread, starred, spam, trash), format (decimal/comma)
action="entries_left" snippet id
action="split_test" snippet ids: comma-separated form IDs to rotate

We found no shortcodes in GP Nested Forms or GP Entry Blocks. Populate Anything’s Live Merge Tags are often mistaken for shortcodes; they are merge tags.

GravityOps plugins

These are our plugins, so the tables below come straight from the code. Of the fourteen GravityOps plugins, six register shortcodes. The other eight do their work through feeds, field settings, workflow steps or admin screens: Asana for Gravity Forms, Mass Email Notifications, Kanban View for GravityView (a View type, so you embed it with [gravityview]), Multi-Media, Live Field Validation, Multi Path Step, Workflow Step Runner and Code Snippet Manager. Folders4Gravity, our free plugin, has none either.

[gravops_search]: GravityOps Search

Searches entries across one form, several, or all of them, and prints the matches in whatever HTML you give it. The core shortcode is free on WordPress.org; the visual shortcode builder and saved-shortcode library are Premium. Full guide: GravityOps Search: a practical guide.

[gravops_search target="5" search="3,created_by" operators="is,is" display="<li>{1} – {7}</li>" separator="__none__" limit="all" sort_key="date_created" sort_direction="DESC" default="No matches yet."]Approved|[/gravops_search]

The enclosed content holds the search values, separated by | in the same order as the IDs in search.

Attribute Default What it does
target 0 Form ID, comma-separated IDs, or 0 for all forms.
search — Field IDs or entry properties to filter on, comma-separated. A blank position searches every field.
operators — One per search position: =/is, !=/isnot, contains, like, in, not in, gt, lt, gt=, lt=. Missing positions use exact match.
search_mode all all requires every condition; any requires one.
search_label — Match fields by label instead of ID. Values follow the search values in the content.
search_type — Match fields by field type. Values follow the search_label values.
field_match first When a label or type matches several fields: first or all.
search_empty false Find entries where the field is empty (leave the content empty).
display — Comma-separated field IDs, or a template with {13}, {id}, {gos:id} placeholders and any HTML.
separator — Between results. HTML allowed; __none__ for nothing.
limit 1 Number of results, or all.
sort_key id Field ID, entry property or meta key.
sort_direction DESC ASC, DESC or RAND.
sort_is_num true Sort numerically.
secondary_sort_key / secondary_sort_direction — / DESC Tie-breaker sort.
unique false Drop duplicate rendered results.
default — Text when nothing matches, or per-field fallbacks.
link false Add an admin link to each result’s entry.

Nested shortcodes go inside display with double curly braces, e.g. display="{{gravitymath}}…{{/gravitymath}}", and the outer search fills in its placeholders before the inner shortcode runs. Write placeholders as gos:21 (no braces) when you pass them into a nested shortcode, so merge-tag parsing doesn’t swallow them. More: the display attribute, nesting shortcodes, search operators. Those posts use the old GFSearch name; the syntax is the same, but the tag is now gravops_search.

Each instance runs a live query and has no permission check of its own. Set a sensible limit, cache the page, and gate pages that show personal data.

[gravityops_chart]: GravityOps Charts

Renders a Chart.js chart server-side from live entries, with no chart feed to configure first. Product page: GravityOps Charts.

[gravityops_chart form_id="12" chart_type="line" x_axis="4" y_axis="6" aggregate="sum" group_by="month" start_date="2026-01-01" title="Donations by month" access="public"]
Attribute Default What it does
form_id required Form to chart.
chart_type pie pie, donut, bar, stacked_bar, horizontal_bar, line, area.
section — Field(s) to slice by. Required for pie and donut.
x_axis — Field(s) for the X axis. Required for bar types. Line and area take exactly one Date field.
y_axis — Numeric field(s). Required for line and area.
aggregate sum sum, avg or count.
group_by day Time bucket for line and area: day, week, month.
start_date / end_date — YYYY-MM-DD.
filters / filters_mode — / all Entry filters, matched all or any.
title / subtitle — Heading text above the chart.
labels — Comma-separated label overrides.
x_label / y_label — Axis titles.
height 360 Pixels, clamped to 180–1600.
max_points 200 Data points, clamped to 20–2000.
max_entries 5000 Entries read per chart. Admins see a notice when the cap is hit.
cache_ttl 300 Seconds to cache results, up to one day. 0 disables.
access private private or public.
capability gform_full_access Capability required to view when access="private".
debug 0 Prints query details, for admins only.

The default that catches people: charts are private. A logged-out visitor sees a permission message until you add access="public".

[gvfgm_var]: Global Variables for GravityMath

Global Variables lets you define a formula or value once and reference it by slug everywhere. [gravitymath] and [gravops_search] resolve those variables on their own. Wrap anything else in [gvfgm_var]...[/gvfgm_var] and the variables inside it resolve too, including inside another plugin’s shortcode. It takes no attributes and requires the Premium plan. Product page: Global Variables.

GravityOps Forum

Shortcode Attributes Renders
[gofrm_index] none The forum index. It also renders forum, topic and profile views when the URL carries them, which is how our own community runs on this single shortcode.
[gofrm_forum] slug, id One forum’s topic list. Without attributes it reads gofrm_forum from the URL.
[gofrm_topic] id One topic with its replies. Without id it reads gofrm_topic from the URL.
[gofrm_profile] none A member profile, from the gofrm_profile URL parameter.

Every topic and reply is a Gravity Forms entry, so [gravops_search], [gravitymath] and GravityView all work on forum content. Product page: GravityOps Forum.

GravityOps AI Feed: front-end generation buttons

Four shortcodes that run an AI feed while the visitor is still filling in the form. They must sit inside the rendered form (usually in an HTML field) so they can read the current field values and fill the destination fields. Premium or Agency plan, and the feed’s trigger mode must allow front-end buttons.

Shortcode Attributes What it does
[goaif_button] feed_id (required), label (“Generate”), form_id Runs an AI text feed and writes the full result to the target fields.
[goaif_stream_button] same Streams the text as it is generated, then writes the final value.
[goaif_image_button] feed_id, label (“Generate Image”), form_id Generates an image. It is attached to the File Upload field when the form is submitted.
[goaif_image_preview] feed_id, placeholder_url, aspect (“1/1”) Preview box for the generated image.

Each click requests a fresh single-use token. An image feed won’t overwrite a file the visitor already uploaded unless a developer changes that policy with the goaif_frontend_image_existing_file_policy filter.

Recurring Form Submissions

Shortcode Attributes What it does
[rfsfgf_overview] status: active (default), all, or one of scheduled, processing, paused, failed, completed, canceled Read-only table of recurring series. Premium plan.
[rfsfgf_entry_widget] entry_id (required, or current to read rfsfgf_entry, lid or entry_id from the URL), form_id Cards for one parent entry with Run Now, Retry, Cancel and Start From Now.

Both render nothing at all for users without the recurring_form_submissions_manage_resubmissions capability. The rfsfgf_shortcode_can_view filter can widen who sees them; it does not widen who can act.

BrightLeaf Digital snippet directory

Our free Code Snippet Directory has 57 snippets for Gravity Forms, Gravity Flow, GravityView and WordPress. Eleven of them register shortcodes. The code lives in our public GitHub repository; attributes below are taken from it. Install with a snippet manager; each entry links to the full code.

Snippet Shortcode Attributes (defaults) What it does
Gravity Forms Progress Meter [gf_progress_meter] form_id, field, goal, filter_key, filter_value, start_date, end_date, caption_label (“Donations”), goal_label (“Goal”), multiplier (1), show (“sum”), cache (1), cache_ttl (300), currency_symbol (“$”), decimal_places (0) Goal meter fed by a form field’s total, with optional filters and date range. Our alternative to the Gravity Wiz meter, with filtering and caching built in.
Export Filtered Gravity View [export_filtered_entries] view_id, form_id, filename (“filtered_entries”), delimiter, label (“Export Filtered View”) Button that exports exactly the entries a visitor’s current View search shows.
Shortcode to display and copy text [bl_copy]...[/bl_copy] label, tag (“div”) Shows the enclosed text with a copy button.
AB Testing Utilities [abtest] + [abcontent] abtest: title (test slug). abcontent: contentversion Cache-friendly A/B test. The chosen version can be saved to a hidden field (abtestversion_{slug}) and printed with slug:contentversiona.
Exit Intent & Idle Modal [gosmartmodal]...[/gosmartmodal] width (“700”), id. Each inner <div> sets open_on (exit, idle:N, scroll:X% or scroll:Ypx), position, dismiss Popups on exit intent, idle time or scroll depth. Gravity Forms shortcodes work inside.
Countdown Timer [countdown] date, time (“00:00:00”), end_text Live countdown to a date and time.
Custom Tabbed Content [tabbed_content] active (0) Turns nested divs into tabs. Shortcodes inside the panels still run.
Mobile Accordion [mobile_accordion] none Turns nested divs into a one-open-at-a-time accordion.
Image Carousel with Modal Lightbox [image_carousel]...[/image_carousel] none; image URLs or <img> tags as content Swipeable carousel with dots, arrows and a full-size lightbox.
Pricing Table [gopricingtable] + [go_plan_column] Parent: public_key, product_id, product_name, freemius (manual/automatic), currency (“usd”), coupon, discount, show_annual_monthly (“yes”), cache_ttl (21600) and more. Child: plan_name, plan_id, site_tiers, site_tiers_label, monthly, annual, plan_desc, plan_features, best_value, has_trial Pricing table with Freemius checkout, live plan data and coupons. The child tag prints nothing on its own.
WP repo plugin widget [wporg_plugin_widget] url, features, plus true/false toggles: short_description, requires, requires_php, version, downloaded, active_installs, last_updated, rating, num_ratings, homepage, icons, contributors Live card for any WordPress.org plugin.

Common mistakes and outdated advice

  • [gfsearch] is gone. Older posts, including some of ours, use it. The plugin now registers only [gravops_search]; the attributes carried over unchanged.
  • Nesting [gvlogic] in [gvlogic]. It closes the outer block early. Use [gvlogic2] and [gvlogic3], or move the inner block into a Global Variables variable, which resolves before the outer block and has no depth limit.
  • Nesting the Gravity Forms conditional shortcode. Gravity Forms doesn’t support it. Use [gvlogic], which also works in confirmations and notifications, or the Gravity Wiz advanced version. Global Variables solves it two ways: put the inner condition in a variable, which resolves before the outer shortcode runs, or (Premium and Agency) use the variable directly in Gravity Forms conditional logic for fields, feeds, notifications and confirmations.
  • Using GravityView’s pagination shortcodes on a normal page. They need a rendered multiple-entries View to describe.
  • Assuming a chart or entry list is private because the page is unlisted. Unlisted is not protected. Gate the page, use secret, or rely on a plugin’s own access setting.
  • Curly quotes. Pasting from Docs or Word turns " into “ ”, and the shortcode silently loses its attributes. A [gravops_search] display attribute has a second trap: nested shortcodes go in {{ }}, and when the display string uses double quotes, everything inside it must use single quotes.
  • Expecting relative dates in [gvlogic]. They work in GravityView field conditional logic, not in the shortcode.

FAQ

What is the Gravity Forms shortcode?

[gravityform id="1"], where 1 is the form ID. Add title="false" description="false" to hide the heading and ajax="true" to submit without a reload. The block editor’s Gravity Forms block does the same thing.

Is there a difference between [gravityform] and [gravityforms]?

No. Both tags call the same handler. Use [gravityform] to embed and [gravityforms action="…"] for the action modes, because that is what the documentation uses.

How do I nest one conditional inside another?

In GravityView, wrap the inner block in [gvlogic2], and a third level in [gvlogic3]. The Gravity Forms conditional shortcode doesn’t nest.

Do shortcodes work in Gravity Forms notifications?

The documented ones do: the Gravity Forms conditional shortcode, [gvlogic] and [gravitypdf]. Anything that needs to read the submitted entry should be tested in a real notification before you rely on it.

How do I show a shortcode on a page without running it?

Double the brackets: [[gravityform id="1"]]. WordPress prints it with single brackets and runs nothing.

Which shortcode should I use to show entries on the front end?

[gravityview] for a full directory with search, single-entry pages and editing. [gravops_search] for a lightweight lookup or custom HTML list anywhere, including inside a GravityView Custom Content field. [gvfield] or [gventry] for one specific entry.

Keeping this current

Plugins add and retire shortcodes every year, and this page gets re-verified the same way it was built. If you know of a Gravity Forms ecosystem shortcode we missed, post it in our community forum and we’ll add it after checking it.

If you build client sites on Gravity Forms, the GravityOps suite is built for you, and the snippet directory is free.

Questions about this?

Ask in the community. The team and other Gravity Forms users answer there.

Leave a Comment