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], plusactionmodes 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
- How we verified this list
- The master list: every shortcode at a glance
- Ground rules that apply to every shortcode
- Gravity Forms core and official add-ons
- GravityKit: GravityView, GravityMath, GravityCharts, GravityCalendar, GravityExport, GravityBoard
- Gravity Flow
- Gravity PDF
- Gravity Wiz: Gravity Perks and snippets
- GravityOps plugins
- BrightLeaf Digital snippet directory
- Common mistakes and outdated advice
- 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:
- Source code. Where the code is available to us, we read the
add_shortcode()call and theshortcode_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. - Official documentation. For everything else we used the vendor’s own docs, not third-party summaries. Each section links to the page we used.
- 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]displayattribute 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.
