Skip to content
GravityKit
Buy
Sign in
0 items
  • Plugins

    GravityKit All Access

    Our complete Kit of essential tools for extending and enhancing Gravity Formsโ€”everything you need to build powerful web apps and workflows.

    Learn more
    • GravityView

      GravityView

      Bestseller

      Display Gravity Forms entries on the front-end of your site and build powerful web applications.

    • GravityImport

      GravityImport

      Trending

      Import entries from CSV files into Gravity Forms to transfer data, create new forms, or update existing entries.

    • GravityEdit

      GravityEdit

      Quickly edit Gravity Forms entries inline to save time, reduce clicks, and streamline your workflow.

    • GravityCharts

      GravityCharts

      Trending

      Turn Gravity Forms entries into interactive charts and graphs.

    • GravityActions

      GravityActions

      Update multiple Gravity Forms entries at once, send bulk emails, and streamline your workflow.

    • GravityCalendar

      GravityCalendar

      Turn Gravity Forms entries into dynamic calendars to showcase events, schedules, appointments, and more.

    • GravityExport

      GravityExport

      Export Gravity Forms entries to Excel, CSV, or PDF and share them instantly with secure download links.

    • GravityMath

      GravityMath

      Perform advanced calculations on Gravity Forms entries to display totals, averages, or build custom calculators.

    • GravityRevisions

      GravityRevisions

      Track, compare, and restore changes made to Gravity Forms forms and entries with a full version history.

    • GravityMigrate

      GravityMigrate

      Migrate all Gravity Forms data, including forms, entries, Views, feeds, uploads, and more.

    • GravityBoard

      GravityBoard

      Manage projects with collaborative project management. Coordinate with your team and streamline your workflows.

  • Ideal For

    • Nonprofits
    • Startups
    • Education
    • Web Agencies
    • Developers
    • Government iconGovernment
    Explore All Use Cases

    Case studies

    • West Fork Schools
    • Princeton University
    • BrightLeaf Giving
    • Jacksonville Port Authority
    • National Severe Storms Lab
    • Leadpal
    • Mediebruket
    • Dragonfly
    View All Case Studies
  • Resources

    • Blog
    • Case studies
    • Support
    • Live Demos
    • Documentation
    • Developer docs
    • GravityKit Academy
    • GravityKit Live!

    Ultimate guides

    • How to use Gravity Forms
    • Editing Gravity Forms entries
    • Importing Gravity Forms entries
    • Exporting Gravity Forms entries
    • Displaying Gravity Forms entries
    • Gravity Forms conditional logic
    • Gravity Forms calculations
    View More Articles
  • Plugins

    • GravityView

      GravityView

      Bestseller

      Display Gravity Forms entries on the front-end of your site and build powerful web applications.

    • GravityImport

      GravityImport

      Trending

      Import entries from CSV files into Gravity Forms to transfer data, create new forms, or update existing entries.

    • GravityEdit

      GravityEdit

      Quickly edit Gravity Forms entries inline to save time, reduce clicks, and streamline your workflow.

    • GravityCharts

      GravityCharts

      Trending

      Turn Gravity Forms entries into interactive charts and graphs.

    • GravityActions

      GravityActions

      Update multiple Gravity Forms entries at once, send bulk emails, and streamline your workflow.

    • GravityCalendar

      GravityCalendar

      Turn Gravity Forms entries into dynamic calendars to showcase events, schedules, appointments, and more.

    • GravityExport

      GravityExport

      Export Gravity Forms entries to Excel, CSV, or PDF and share them instantly with secure download links.

    • GravityMath

      GravityMath

      Perform advanced calculations on Gravity Forms entries to display totals, averages, or build custom calculators.

    • GravityRevisions

      GravityRevisions

      Track, compare, and restore changes made to Gravity Forms forms and entries with a full version history.

    • GravityMigrate

      GravityMigrate

      Migrate all Gravity Forms data, including forms, entries, Views, feeds, uploads, and more.

    • GravityBoard

      GravityBoard

      Manage projects with collaborative project management. Coordinate with your team and streamline your workflows.

    GravityKit All Access

    Our complete Kit of essential tools for extending and enhancing Gravity Formsโ€”everything you need to build powerful web apps and workflows.

    Learn more
  • Ideal For

    • Nonprofits
    • Startups
    • Education
    • Web Agencies
    • Developers
    • Government iconGovernment
    Explore All Use Cases

    Case studies

    • West Fork Schools
    • Princeton University
    • BrightLeaf Giving
    • Jacksonville Port Authority
    • National Severe Storms Lab
    • Leadpal
    • Mediebruket
    • Dragonfly
    View All Case Studies

    How to build...

    • Property Management
    • Product Catalog
    • Fundraising Dashboard
    • Real Estate Directory
    • Document Library
    • Academic Journal
    • Volunteer Management
    • Meal Tracker
    View All Guides
  • Resources

    • Blog
    • Case studies
    • Support
    • Live Demos
    • Documentation
    • Developer docs
    • GravityKit Academy
    • GravityKit Live!

    ultimate guides

    • How to use Gravity Forms
    • Editing Gravity Forms entries
    • Importing Gravity Forms entries
    • Exporting Gravity Forms entries
    • Displaying Gravity Forms entries
    • Gravity Forms conditional logic
    • Gravity Forms calculations
    View More Articles
  • Pricing
  • About
0 items
Results appear automatically as you type.
Loading results…

results found matching

    Sign in
    Buy

    Docs

    • Docs Home

    Gravity Forms Add-Ons

    • GravityView
    • GravityActions
    • GravityBoard
    • GravityCalendar
    • GravityCharts
    • GravityEdit
    • GravityExport
    • GravityImport
    • GravityMath
    • GravityMigrate
    • GravityRevisions
    • GF Widget for Elementor
    • GF Dynamic Lookup
    • GF Entry Tags
    • GF Event Field
    • GF Zero Spam
    • GravityExport Lite

    GravityView

    • Getting Started
    • View Setup
    • FAQ
    • Pre-Sale
    • Advanced
    • Common Problems
    • Customizing Your Views
    • Edit Entry
    • Entry Approval
    • Filter and Sort Results
    • Gravity Forms
    • Merge Tags
    • Roles and Capabilities
    • Search
    • Shortcodes
    • View Settings
    • WordPress Posts

    General Help

    • Account, Invoices, and Billing
    • License Related
    • Plugins and Settings
    • Contact
    • Docs Home
    • Gravity Forms Add-Ons

      • GravityView
      • GravityActions
      • GravityBoard
      • GravityCalendar
      • GravityCharts
      • GravityEdit
      • GravityExport
      • GravityImport
      • GravityMath
      • GravityMigrate
      • GravityRevisions
      • GF Widget for Elementor
      • GF Dynamic Lookup
      • GF Entry Tags
      • GF Event Field
      • GF Zero Spam
      • GravityExport Lite
    • GravityView

      • Getting Started
      • View Setup
      • FAQ
      • Pre-Sale
      • Advanced
      • Common Problems
      • Customizing Your Views
      • Edit Entry
      • Entry Approval
      • Filter and Sort Results
      • Gravity Forms
      • Merge Tags
      • Roles and Capabilities
      • Search
      • Shortcodes
      • View Settings
      • WordPress Posts
    • General Help

      • Account, Invoices, and Billing
      • License Related
      • Plugins and Settings
    • Contact

    GravityView

      • Beginner guide: Merge Tags vs shortcodes
      • Getting Started: Setting up Your First View
      • “How To” Guides and Tutorials
      • Activating your license
      • Adding a Print button to the Single Entry page
      • Adding a View to a page using Visual Composer
      • Adding Views to WordPress menus
      • Changing the Single Entry view title
      • Comparing GravityViewโ€™s View Layouts
      • Configuring Delete Entry
      • Configuring the Edit Entry screen
      • Creating an image gallery (displaying images in a grid)
      • Duplicating a Gravity Forms entry from the backend of your site
      • Duplicating a Gravity Forms entry from the frontend of your site
      • Duplicating or copying a View
      • Dynamic Widget Placement
      • Embedding Single Entries in a Post or Page
      • Embedding Views, entries and fields using blocks
      • Enable Enhanced Security: the secret attribute for shortcodes
      • Getting Started: Adding Fields to the Multiple Entries and Single Entry Pages
      • Getting Started: Choosing a Form and a View Layout
      • Hiding the Approve/Reject Entry column
      • How to add a Gravity Forms widget to GravityView
      • How to add a PDF download link to your View
      • How to add a PDF download link to your View using Gravity PDF
      • How to embed a View inside another View
      • Importing and Exporting configured Views
      • Installing GravityView
      • Linking to a Single Entry
      • Modifying the Default View Settings
      • Opening and editing entry details in a lightbox (modal/popup)
      • Redirecting to the Multiple Entries screen after editing an Entry
      • Removing Theme Navigation Links from Views
      • The Entry Notes field
      • The Layout Builder (how and when to use it)
      • The Recent Entries Widget
      • The View Settings Meta Box
      • The Views list on the dashboard
      • Understanding the “No Entries Behavior” setting in GravityView
      • User Edit: Allowing Users to Edit Their Own Entries
      • Using an Admin Label for Custom Content fields
      • Using the Custom Content Field
      • What Are Form Presets?
      • What are View widgets useful for?
      • Working with Field Labels (column headings)
      • Are Views responsive on mobile devices?
      • Beginner guide: Merge Tags vs shortcodes
      • Can I display multiple Views on the same page?
      • Can I duplicate an entry from a View?
      • Can I update a WordPress user account using GravityView?
      • Can I use GravityView to edit Custom Post Types?
      • Can we display entries from other websites?
      • Difference between using Custom Content as a Widget or as a Field
      • Does GravityView support GP Nested Forms (Gravity Wiz Perk)?
      • Does GravityView support Gutenberg?
      • Does GravityView support the Gravity Forms Dropbox add-on?
      • Does GravityView work with Ajax?
      • Does GravityView work with WooCommerce?
      • Does GravityView work with workflows made by Gravity Flow
      • Does my GravityKit subscription include Gravity Forms?
      • Does the Search Bar support operators like OR or AND?
      • How does GravityView know who can edit the entry?
      • How does GravityView work with Gravity Forms “Save and Continue”?
      • How To Display Full-Width Widgets in the Bottom Widget Area
      • Is Gravity Forms the same thing as GravityView?
      • Is GravityView Multisite compatible? Yes!
      • Is it possible to display the field description on a View?
      • Is it possible to do date comparison with [gvlogic]?
      • Is it possible to edit Credit Card field data?
      • Is it possible to output the save and continue links from a form that hasn’t been submitted yet?
      • Is it possible to redirect the user to a specific page after deleting an entry?
      • Security false positive: StandalonePHPEnkoder.php
      • What are the existing layout options to create a View?
      • What is this “Grant Support Access” menu on GravityView?
      • Which Post Fields are editable?
      • Will GravityView stop working if I don’t renew?
      • Can I create admin pages with GravityView?
      • Can I upgrade my license later?
      • Does GravityView Support Gravity Forms Survey Add-On?
      • Does GravityView support Gutenberg?
      • Is Gravity Forms the same thing as GravityView?
      • Is GravityView Multisite compatible? Yes!
      • Is there a free trial for GravityView?
      • Which Gravity Forms license do I need?
      • “Encrypt Email Address” is checked, but emails are still readable
      • โ€œClaim Entryโ€ functionality with GravityView and Gravity Flow
      • About GravityView Caching
      • About the gk_parent_entry_id and the gk_parent_form_id entry metas
      • Adding custom CSS classes and HTML IDs to Layout Builder rows
      • Calculating a person’s age based on a date field
      • Can I integrate with Paid Memberships Pro Membership Directory Add On?
      • Change the Delete Entry mode from “Delete” to “Trash”
      • Completely deleting GravityView
      • Customizing View URLs
      • Disable the Custom Content code editor
      • Disable the unfiltered_html capability requirement in GravityView
      • Display a Gravity Forms form when no entry exists with [gventry]
      • Edit Entry: How to disable Gravity Forms User Registration feeds from being updated
      • Editing Product and Pricing Fields in Edit Entry
      • Enable Views to be hierarchical (parent/child)
      • Exporting all fields to CSV
      • Exporting entries as CSV or TSV from GravityView
      • Fine-tuning search results in GravityView with search modifiers
      • GDPR and GravityView
      • GravityView Hooks: Customizing the Output of a Field
      • GravityView: How to trigger feeds after editing an entry
      • Hidden fields and field visibility on Edit Entry
      • How do I filter by a specific entry ID?
      • How GravityView Security Works
      • How to change what fields are searched by the Search Bar “Created By” text input.
      • How to Connect GravityView With Zapier Using Uncanny Automator
      • How to delete the GravityView data when the plugin is uninstalled?
      • How to disable GravityView email encryption
      • How to disable the Support Port from loading
      • How to display all entries by default
      • How to display the true location of file uploads
      • How to enable logging and use WP Debug in GravityKit
      • How to filter entries by cookie value
      • How to get the ID of the entry on Edit Entry page?
      • How to hide the GravityKit menu
      • How to modify fancybox lightbox settings
      • How to navigate to an HTML anchor after search
      • How to override any translation in GravityView
      • How to require whole numbers in Gravity Forms’ Number field
      • How to search for a whole phrase
      • How to show checkbox fields as comma-separated instead of a bullet list
      • How to track pageviews for entries using the [gv_pageviews] shortcode
      • How to use the gform_pre_render filter in Edit Entry
      • I want to translate GravityView (or another GravityKit add-on)!
      • Listing entries assigned to a specific user
      • Making calculations using the custom content field
      • Marking an entry “Unread” after it is edited
      • Modifying Search Bar Inputs
      • Modifying the Default View Settings
      • Modifying the entries displayed in a View
      • Modifying the Go Back link to avoid losing search parameters
      • Only show choices in the Search Bar that exist in entries
      • Optimizing Gravity Forms with custom indexes
      • Preserve the “sub-step” status in Gravity Flow when one or more assignees are changed in GravityView
      • Prevent GravityView from loading its CSS styles
      • Renamed Filters & Methods in 2.14
      • REST API Endpoints
      • Restarting a Gravity Flow workflow after editing an entry in GravityView
      • Retrieve Entry Approval Status in GravityView
      • Setting page title for Entries
      • The GravityView plugin changelog
      • Translation string loading order
      • Understanding how an entry gets associated with a user
      • Use [gvlogic] to show (or hide) content anywhere on your site
      • Using direct file paths for uploaded media in GravityView
      • Using Gravity Forms gf_apply_filters() and gf_do_action() in Gravity Forms development
      • When to use Advanced Filtering vs Field Conditional Logic vs gvlogic
      • WordPress hooks (actions and filters) available for GravityView
      • ‘Bad Request’ or ‘Request Header Too Large’ Error When Editing Entries in GravityView
      • “Cheatin’ Uh?” message is displayed when editing a View
      • “Date Created” field is inaccurate
      • Add Field or Add Widget buttons aren’t working
      • Display issues with the Search Bar
      • During installation: “Warning: No such file or directory”
      • Enabling No-Conflict Mode
      • Exporting forms & Views from your site
      • Getting a 404 error when accessing CSV endpoint
      • GravityView Hooks: Customizing the Output of a Field
      • GravityView updates aren’t displaying
      • How to create a new entry based on existing Gravity Forms entry data
      • How to delete and re-install GravityView
      • How to disable Gravity Formsโ€™ Secure File Download Location
      • I get this error when auto-updating the plugin: “Download failed. SSL peer certificate or SSH remote key was not OK”
      • Images on the View are upside down, rotated or flipped
      • Infinite loop recursion
      • Known issue: When editing entries that have conditional calculations, the result may be incorrect
      • Merge Tags aren’t visible
      • My theme is Divi and I can’t see the Search Bar
      • My View widgets are not showing up on my Divi theme
      • My Yoast Meta Box is blank
      • Only some users are visible the Change Entry Creator dropdown
      • Pointing the [gv_entry_link] to a specific page
      • Price fields and numbers being sorted alphabetically, not numerically
      • Random sorting not working on WP Engine
      • Reasons for the “You are not allowed to view this content.” message
      • ReferenceError: gvGlobals is not defined
      • Removing Theme Navigation Links from Views
      • Reserved URL query parameters
      • Reserved URL Slugs
      • Sorting by Name isn’t working
      • Strange display issues inside the View editor
      • The “Update” button isn’t showing in Edit Entry
      • The GravityView settings menu isn’t visible
      • The Settings box is hidden
      • There are other plugin boxes on the Edit View screen
      • View widgets conflict with All in One SEO
      • Visual Composer and GravityView
      • What caching plugin do we recommend? WP Rocket.
      • Why can’t I edit my View?
      • Why is my View slow to load?
      • Why View entries may not be showing up
      • WPML and GravityView
      • You donโ€™t have permission to edit this post.
      • [Deprecated] Using the FooBox Lightbox plugin instead of the default Thickbox
      • Adding a link to a column
      • Adding a percent sign (%) to a column
      • Adding Custom CSS classes to fields or widgets
      • Adding custom CSS to your Views
      • Adding custom JavaScript to your Views
      • Adding custom PHP code snippets to your website
      • Adding Disqus comments to Entries
      • Adding pagination to the Single Entry page
      • Adding RTL (right-to-left) text support to a field
      • Are Views responsive on mobile devices?
      • Can I disable the Map It link?
      • Changing image size on the Multiple Entries screen
      • Changing the “Entry Updated. Return to Entry” message
      • Changing the display size of images
      • Changing the Edit Entry page title
      • Changing the orientation of a PDF from portrait to landscape
      • Changing the Single Entry view title
      • Changing the View custom post type slug
      • Creating a leaderboard with GravityView
      • Custom single View template not displaying
      • Customizing emails sent by the Entry Notes field
      • Customizing View URLs
      • Disable Wrapping Images with a Link
      • Displaying a form if no entries exist on the View
      • Displaying a List View in a grid (two or more columns)
      • Displaying Edit Entry and Delete Entry links as icons
      • Displaying Fields conditionally
      • Displaying the text label (not the value) of a dropdown field
      • Displaying video, audio, and media links as a player using the Custom Content field
      • Enabling Custom CSS Classes for GravityView widgets
      • GravityView CSS guide
      • GravityView Hooks: Customizing the Output of a Field
      • Hiding the “No entries match your request” message
      • How to add row numbers to a View
      • How to change the View layout
      • How to Connect GravityView With Zapier Using Uncanny Automator
      • How to disable the sorting control on one table column?
      • How to display GravityView entries in a grid (or columns) using CSS
      • How to display uploaded files as links
      • How to rename the Update and Cancel buttons on the Edit Entry page
      • How to show checkbox fields as comma-separated instead of a bullet list
      • Make “Map It” links open in a new window
      • Making your table scroll horizontally
      • Modifying Date, Time, or Entry Date field formats
      • Modifying Search Bar Inputs
      • Modifying the “Map It” address link
      • Modifying the Default View Settings
      • Modifying the Go Back link to avoid losing search parameters
      • Modifying the output of the Edit Entry form
      • Modifying the text displayed when there are no entries
      • Only show choices in the Search Bar that exist in entries
      • Overriding GravityView templates
      • Placing two fields side-by-side in the same column
      • Prevent GravityView from loading its CSS styles
      • Price fields and numbers being sorted alphabetically, not numerically
      • Redirecting to a newly-created Gravity Forms entry
      • Removing column headings from the bottom of the tables
      • Removing Theme Navigation Links from Views
      • Search: Changing the default option in a select (drop down) field
      • Shortening the displayed URL in a Website field
      • Show name fields as initials
      • Styling the Buttons on the Edit Entry Page
      • Styling the Search Bar Widget
      • Supported Themes
      • Table widths aren’t being applied
      • The View Container <div>
      • Using Page Templates with GravityView
      • What are the existing layout options to create a View?
      • ‘Bad Request’ or ‘Request Header Too Large’ Error When Editing Entries in GravityView
      • Changing the “Entry Updated. Return to Entry” message
      • Changing the creator of an entry in Gravity Forms
      • Changing the creator of an entry in GravityView
      • Changing the Edit Entry page title
      • Conditional Logic on the Edit Entry page
      • Configuring Delete Entry
      • Configuring the Edit Entry screen
      • Creating a View Editor role
      • Creating an “Edit Your Profile” link
      • Creating an Entry Moderator role
      • Disabling Conditional Logic on the Edit Entry page
      • Displaying Edit Entry and Delete Entry links as icons
      • Edit Entry: Multi-page form editing
      • Editing Product and Pricing Fields in Edit Entry
      • Embedding the Edit Entry form into a Page or Post
      • GravityView: How to trigger feeds after editing an entry
      • Hidden fields and field visibility on Edit Entry
      • Hiding the Confirm Email field on the Edit Entry page
      • How does GravityView know who can edit the entry?
      • How does GravityView work with Gravity Forms “Save and Continue”?
      • How to get the ID of the entry on Edit Entry page?
      • How to modify the settings for the Post Content edit field
      • How to prevent an approved entry from being edited
      • How to rename the Update and Cancel buttons on the Edit Entry page
      • How to use the gform_pre_render filter in Edit Entry
      • Known issue: When editing entries that have conditional calculations, the result may be incorrect
      • Marking an entry “Unread” after it is edited
      • Modifying the output of the Edit Entry form
      • Redirecting to the Multiple Entries screen after editing an Entry
      • Styling the Buttons on the Edit Entry Page
      • The “Update” button isn’t showing in Edit Entry
      • The Update button on the Edit Entry page is missing
      • Unapproving entries automatically after they’re edited
      • User Edit: Allowing Users to Edit Their Own Entries
      • View Settings: Enable Edit Locking in GravityView
      • View Settings: Redirect After Editing
      • Which Post Fields are editable?
      • (Advanced) How to update entry approval status using PHP
      • Can I add an additional status to the approval system?
      • Changing the “You are not allowed to view this content” text when an entry is pending approval
      • Changing the labels of the approval statuses
      • Entry Approval Merge Tags or how to approve an entry via email
      • Front-end entry approval
      • Getting Started: GravityView Entry Approval
      • Hiding the Approve/Reject Entry column
      • How to automatically approve an entry when submitting the form
      • How to prevent an approved entry from being edited
      • How to send email notifications when an entry is approved, disapproved, or the approval status has changed
      • Managing entry approval in the Gravity Forms Entries screen
      • Modifying the CSS of Front-end approval
      • The {approval_status} Merge Tag
      • Unapproving entries automatically after they’re edited
      • Creating an “Edit Your Profile” link
      • Enabling the table column sorting feature
      • Filtering entries by WordPress User Roles
      • Forcing numbers to sort properly
      • How do I filter by a specific entry ID?
      • How to display only entries created today
      • How to display the last submitted entry only
      • Listing entries assigned to a specific user
      • Making entries expire after a certain amount of time
      • Pre-filtering results on a View
      • Random sorting not working on WP Engine
      • Restricting View content to be members-only
      • Sort doesn’t work when using Gravity Forms encryption plugins
      • Sorting by multiple columns
      • Sorting results by field value
      • Using relative Start Dates and End Dates
      • View sorting isn’t working
      • Adding a Link to the Stripe Customer Portal in GravityView
      • Changing the creator of an entry in Gravity Forms
      • Creating a review/voting system by embedding a form into a single entry
      • Disabling the Create a View menu
      • Displaying incomplete or partial entries
      • Duplicating a Gravity Forms entry from the backend of your site
      • File Uploads can’t be included in partial entries
      • How does GravityView work with Gravity Forms “Save and Continue”?
      • How to embed a form for each entry in a View
      • How to require whole numbers in Gravity Forms’ Number field
      • Known issue: When editing entries that have conditional calculations, the result may be incorrect
      • Passing a field value from the View to a form on another page
      • Showing inactive Entries
      • Sort doesn’t work when using Gravity Forms encryption plugins
      • Styling Gravity Forms
      • Using GFChart with GravityView
      • Using shortcodes inside Gravity Forms notifications
      • Why is my form creating WordPress posts?
      • Why you should avoid using List fields in your form
      • {date_created} Merge Tag
      • Displaying Fields conditionally
      • Entry Approval Merge Tags or how to approve an entry via email
      • GravityView Merge Tag modifiers
      • Merge Tags
      • Merge Tags aren’t visible
      • Removing the custom content when the merge tag is empty
      • The {approval_status} Merge Tag
      • The {current_post} Merge Tag
      • The {get} Merge Tag
      • The {gv_entry_link} Merge Tag
      • The {is_starred} Merge Tag
      • The {sequence} Merge Tag
      • The {user} and {created_by} Merge Tag
      • Using the {get} Merge Tags with [gvlogic] to display a person’s name in a Custom Content widget
      • Creating a View Editor role
      • Creating an Entry Moderator role
      • Filtering entries by WordPress User Roles
      • GravityView Capabilities
      • How to hide the GravityKit menu
      • Modifying capabilities shown in the field “Only visible to…” dropdown
      • Why can’t I edit my View?
      • Adding pagination for results (next/previous page links)
      • Changing search form style from horizontal to vertical
      • Changing the format of the search widget’s date picker
      • Configuring the (WordPress) Search Widget
      • Configuring the Search Bar widget
      • Display issues with the Search Bar
      • Does the Search Bar support operators like OR or AND?
      • Fine-tuning search results in GravityView with search modifiers
      • How to hide results and only display them if a search is performed
      • How to search for a whole phrase
      • How to search for an exact match
      • Linking to search results
      • Modifying the Go Back link to avoid losing search parameters
      • Only show choices in the Search Bar that exist in entries
      • Search Bar: Why is the state input is showing as a text field?
      • Search: Changing the default option in a select (drop down) field
      • Turning off the Show Search Bar default search field
      • Using a range to search numeric fields
      • Using the Search Bar “Clear” button
      • An Overview of Shortcodes Added by GravityView
      • Displaying Fields conditionally
      • Embedding two shortcodes on the same post or page
      • Highlighting entries about to expire “today”
      • How can I display a list of my Views on my site?
      • How to conditionally display an image or a placeholder
      • How to highlight an entry from a specific date
      • How to prevent an approved entry from being edited
      • How to track pageviews for entries using the [gv_pageviews] shortcode
      • Pointing the [gv_entry_link] to a specific page
      • The [gv_entry_link] Shortcode
      • Use [gvlogic] to show (or hide) content anywhere on your site
      • Using [gvlogic] and [gvlogic2] to create “AND” logic
      • Using shortcodes inside Gravity Forms notifications
      • Using the [gravityview] Shortcode
      • Using the [gventry] Shortcode
      • Using the [gvfield] shortcode to embed single field values
      • Using the [gvlogic] shortcode
      • Using the {get} Merge Tags with [gvlogic] to display a person’s name in a Custom Content widget
      • Widget shortcodes
      • Automatically marking Gravity Forms entries as “Read”
      • Exporting entries as CSV or TSV from GravityView
      • Modifying the Default View Settings
      • Preventing Views and Entries from being crawled by the Google Crawler/Bot
      • The GravityView Direct Access Setting
      • View Setting: Number of entries per page
      • View Settings: Custom Code
      • View Settings: Enable Edit Locking in GravityView
      • View Settings: Enable Lightbox for Images
      • View Settings: Redirect After Editing
      • Can I use GravityView to edit Custom Post Types?
      • How to modify the settings for the Post Content edit field
      • Post Image Meta information: Title, Caption and Description for the Post Image field
      • Removing Theme Navigation Links from Views
      • Which Post Fields are editable?
    • Home
    • Docs
    • GravityView
    • Customizing Your Views
    • GravityView CSS guide

    GravityView CSS guide

    Estimated reading: 91 minutes

    Updated on April 24, 2026

    This guide covers the HTML structure and CSS classes for all GravityView layouts. It is designed for developers who want to customize the appearance of GravityView Views using CSS.

    Table of contents #

    • Container wrapper
    • Table layout
    • List layout
    • Layout Builder layout
    • DataTables layout
    • Maps layout
    • DIY layout
    • Edit Entry
    • Search bar widget
    • The gv_class() function
    • Grid system
    • Other styles
    • CSS customization filters
    • Related links

    Container wrapper #

    The outermost View wrapper uses the pattern div#gv-view-{View ID}-{counter}. This ID is unique per View instance on a page.

    All layouts share the following container classes added by the gv_container_class() function:

    • .gv-container โ€” Standard container class on all Views
    • .gv-container-{id} โ€” View-specific container (e.g., gv-container-47)

    The following state classes are added conditionally:

    • .gv-container-no-results โ€” Added when there are zero entries to display
    • .gv-hidden โ€” Added when “Hide Until Searched” is active and no search has been performed, or when no_entries_options === 3
    • Custom CSS class โ€” User-defined class from View settings ($context->view->settings->get('class'))

    Each layout also has an outermost template wrapper <div> with a layout-specific class:

    • .gv-template-table โ€” Table layout
    • .gv-template-list โ€” List layout
    • .gv-template-layout-builder โ€” Layout Builder layout
    • .gv-template-datatables โ€” DataTables layout

    This wrapper HTML can be modified using the gravityview/view/wrapper_container filter. See also: All about the View container. The container classes listed above apply to ALL layouts.

    Table layout #

    Multiple entries

    The Table layout renders entries as table rows with column headers.

    Class hierarchy:

    div#gv-view-{id}-1.gv-template-table
    โ”œโ”€โ”€ div.gv-grid.gv-widgets-header (widget zone)
    โ”‚   โ””โ”€โ”€ div.gv-grid-row
    โ”‚       โ””โ”€โ”€ div.gv-grid-col-1-1.gv-left
    โ””โ”€โ”€ div.gv-table-view.gv-table-container.gv-table-multiple-container.gv-container.gv-container-{id}
        โ””โ”€โ”€ table.gv-table-view
            โ”œโ”€โ”€ thead > tr > th.gv-field-{form}-{field}
            โ”œโ”€โ”€ tbody > tr.alt > td.gv-field-{form}-{field}
            โ””โ”€โ”€ tfoot > tr > th.gv-field-{form}-{field}

    HTML example:

    <div id="gv-view-47-1" class="gv-template-table">
      <div class="gv-grid gv-widgets-header">
        <div class="gv-grid-row">
          <div class="gv-grid-col-1-1 gv-left">
            <!-- Search widget -->
          </div>
        </div>
      </div>
    
      <div class="gv-table-view gv-table-container gv-table-multiple-container gv-container gv-container-47">
        <table class="gv-table-view">
          <thead>
            <tr>
              <th id="gv-field-1-id" class="gv-field-1-id" data-label="Entry ID">
                <span class="gv-field-label">Entry ID</span>
              </th>
              <th id="gv-field-1-1" class="gv-field-1-1" data-label="Name">
                <span class="gv-field-label">Name</span>
              </th>
            </tr>
          </thead>
          <tbody>
            <tr class="alt" data-row="0">
              <td id="gv-field-1-id" class="gv-field-1-id" data-label="Entry ID">12</td>
              <td id="gv-field-1-1" class="gv-field-1-1" data-label="Name">
                <a href="/your-view-page/entry/12/">John Doe</a>
              </td>
            </tr>
            <tr class="" data-row="1">
              <td id="gv-field-1-id" class="gv-field-1-id" data-label="Entry ID">13</td>
              <td id="gv-field-1-1" class="gv-field-1-1" data-label="Name">
                <a href="/your-view-page/entry/13/">Jane Smith</a>
              </td>
            </tr>
          </tbody>
          <tfoot>
            <tr>
              <th id="gv-field-1-id" class="gv-field-1-id" data-label="Entry ID">
                <span class="gv-field-label">Entry ID</span>
              </th>
              <th id="gv-field-1-1" class="gv-field-1-1" data-label="Name">
                <span class="gv-field-label">Name</span>
              </th>
            </tr>
          </tfoot>
        </table>
      </div>
    </div>

    Single entry

    The single-entry view uses horizontal row orientation: each <tr> contains one field with the label in <th> and value in <td>.

    Key differences:

    • Container uses .gv-table-single-container instead of .gv-table-multiple-container
    • Table uses .gv-table-view-content class
    • Each field is a table row (horizontal orientation)
    • Back link appears before the container

    HTML example:

    <p class="gv-back-link">
      <a data-viewid="47" href="/your-view-page/">โ† Go back</a>
    </p>
    
    <div class="gv-table-view gv-table-container gv-table-single-container gv-container gv-container-47">
      <table class="gv-table-view-content">
        <thead></thead>
        <tbody>
          <tr id="gv-field-1-id" class="gv-field-1-id">
            <th scope="row"><span class="gv-field-label">Entry ID</span></th>
            <td>12</td>
          </tr>
          <tr id="gv-field-1-1" class="gv-field-1-1">
            <th scope="row"><span class="gv-field-label">Name</span></th>
            <td>John Doe</td>
          </tr>
          <tr id="gv-field-1-5" class="gv-section gv-field-1-5">
            <th scope="row"><span class="gv-field-label">Additional details</span></th>
            <td></td>
          </tr>
          <tr id="gv-field-1-8" class="gv-field-1-8">
            <th scope="row"><span class="gv-field-label">Photo</span></th>
            <td>
              <a class="gravityview-fancybox" href="..." rel="gv-field-1-8-12">
                <img src="..." alt="Photo" class="gv-image gv-field-id-8">
              </a>
            </td>
          </tr>
        </tbody>
        <tfoot></tfoot>
      </table>
    </div>

    No results state

    When there are no entries, the Table layout displays the message inside a <td> spanning all columns:

    <tbody>
      <tr>
        <td colspan="3" class="gv-no-results gv-no-results-text">
          <p>No entries match your request.</p>
        </td>
      </tr>
    </tbody>

    Or with an embedded form (no_entries_options = 1):

    <tbody>
      <tr>
        <td colspan="3" class="gv-no-results gv-no-results-form">
          <!-- Gravity Forms form rendered here -->
        </td>
      </tr>
    </tbody>

    Note: The no-results markup differs by layout. Table uses <td> inside the table structure, while List and Layout Builder use <div> elements.

    Table-specific notes

    • The gv_class() function generates .gv-field-{form}-{field} classes on <th> and <td> elements
    • Sort links appear in headers with .gv-sort and state classes (.gv-icon-caret-up-down, .gv-icon-sort-asc, .gv-icon-sort-desc)
    • The .alt class alternates on table rows in <tbody>
    • Mobile responsive: <thead> and <tfoot> hidden at โ‰ค575.98px; <td> elements use :before pseudo-elements with data-label attribute values

    Filter: gravityview/template/table/entry/class modifies CSS class on each <tr> row.

    List layout #

    Multiple entries

    The List layout displays entries as individual list items with title, content, and footer zones.

    Class hierarchy:

    div#gv-view-{id}-1.gv-template-list
    โ””โ”€โ”€ div.gv-list-container.gv-list-multiple-container.gv-container.gv-container-{id}
        โ””โ”€โ”€ div#gv_list_{entry_id}.gv-list-view
            โ”œโ”€โ”€ div.gv-list-view-title
            โ”‚   โ”œโ”€โ”€ h3.gv-field-{form}-{field} > a (linked title)
            โ”‚   โ””โ”€โ”€ div.gv-list-view-subtitle > h4
            โ”œโ”€โ”€ div.gv-grid.gv-list-view-content
            โ”‚   โ”œโ”€โ”€ div.gv-grid-col-1-3.gv-list-view-content-image
            โ”‚   โ””โ”€โ”€ div.gv-grid-col-2-3.gv-list-view-content-description
            โ””โ”€โ”€ div.gv-grid.gv-list-view-footer
                โ”œโ”€โ”€ div.gv-grid-col-1-2.gv-left
                โ””โ”€โ”€ div.gv-grid-col-1-2.gv-right

    HTML example:

    <div id="gv-view-22-1" class="gv-template-list">
    <div class="gv-list-container gv-list-multiple-container gv-container gv-container-22">
    
      <div id="gv_list_5" class="gv-list-view">
    
        <div class="gv-list-view-title">
          <h3 class="gv-field-2-1">
            <a href="/your-view-page/entry/5/">John Doe</a>
          </h3>
          <div class="gv-list-view-subtitle">
            <h4 id="gv-field-2-2" class="gv-field-2-2">
              Software Engineer at Example Corp
            </h4>
          </div>
        </div>
    
        <div class="gv-grid gv-list-view-content">
          <div class="gv-grid-col-1-3 gv-list-view-content-image">
            <div id="gv-field-2-8" class="gv-field-2-8">
              <a class="gravityview-fancybox" href="...image.jpg" rel="gv-field-2-8-5">
                <img src="...image.jpg" width="250" alt="Featured Image"
                     class="gv-image gv-field-id-8">
              </a>
            </div>
          </div>
          <div class="gv-grid-col-2-3 gv-list-view-content-description">
            <div id="gv-field-2-3" class="gv-field-2-3">
              <p>A brief description of the directory listing goes here.</p>
            </div>
          </div>
        </div>
    
        <div class="gv-grid gv-list-view-footer">
          <div class="gv-grid-col-1-2 gv-left">
            <div id="gv-field-2-4.1" class="gv-field-2-4.1">123 Main Street</div>
          </div>
          <div class="gv-grid-col-1-2 gv-right">
            <div id="gv-field-2-entry_link" class="gv-field-2-entry_link">
              <a href="/your-view-page/entry/5/">View Details</a>
            </div>
          </div>
        </div>
    
      </div>
    
    </div>
    </div>

    Single entry

    Key differences:

    • Container uses .gv-list-single-container
    • Back link appears first
    • Title is NOT linked (plain text in <h3>)
    • Content zone does NOT have .gv-grid class
    • No footer zone
    • Fields may include span.gv-field-label

    HTML example:

    <div id="gv-view-22-1" class="gv-template-list">
    <div class="gv-list-container gv-list-single-container gv-container gv-container-22">
    
      <p class="gv-back-link">
        <a data-viewid="22" href="/your-view-page/">โ† Go back</a>
      </p>
    
      <div id="gv_list_5" class="gv-list-view">
    
        <div class="gv-list-view-title">
          <h3 class="gv-field-2-1">John Doe</h3>
          <div class="gv-list-view-subtitle">
            <h4 id="gv-field-2-2" class="gv-field-2-2">
              Software Engineer at Example Corp
            </h4>
          </div>
        </div>
    
        <div class="gv-list-view-content">
          <div class="gv-list-view-content-image gv-grid-col-1-3">
            <div id="gv-field-2-entry_map" class="gv-field-2-entry_map">
              <!-- Google Map canvas -->
            </div>
            <div id="gv-field-2-4" class="gv-field-2-4">
              123 Main Street<br>Springfield, Illinois 62701<br>United States
            </div>
          </div>
    
          <div class="gv-list-view-content-description">
            <div id="gv-field-2-3" class="gv-field-2-3">
              <p>A detailed description of the listing goes here.</p>
            </div>
            <div id="gv-field-2-7" class="gv-field-2-7">
              <span class="gv-field-label">Website:</span>
              <p><a href="https://www.example.com" target="_blank">example.com</a></p>
            </div>
            <div id="gv-field-2-6" class="gv-field-2-6">
              <span class="gv-field-label">Email address:</span>
              <p><a href="mailto:john@example.com">john@example.com</a></p>
            </div>
            <div id="gv-field-2-5" class="gv-field-2-5">
              <span class="gv-field-label">Phone:</span>
              <p><a href="tel:(555)%20123-4567">(555) 123-4567</a></p>
            </div>
          </div>
        </div>
    
      </div>
    </div>
    </div>

    No results state

    Same pattern as Table layout โ€” uses .gv-no-results, .gv-no-results-text, or .gv-no-results-form classes.

    Filter: gravityview/template/list/entry/class modifies entry wrapper classes.

    Layout Builder layout #

    Multiple entries

    The Layout Builder uses a BEM-style grid system for complete layout control.

    Class hierarchy:

    div#gv-view-{id}-1.gv-template-layout-builder
    โ”œโ”€โ”€ div.gv-grid.gv-widgets-header (widget zone)
    โ””โ”€โ”€ div.gv-layout-builder-container.gv-layout-builder-multiple-container.gv-container.gv-container-{id}
        โ””โ”€โ”€ div.gv-layout-builder-view.gv-layout-builder-view--entry.gv-grid
            โ”œโ”€โ”€ div.gv-grid-row
            โ”‚   โ”œโ”€โ”€ div.gv-grid-col-2-3
            โ”‚   โ”‚   โ””โ”€โ”€ div.gv-field-{form}-{field}
            โ”‚   โ”‚       โ””โ”€โ”€ div.gv-grid-value
            โ”‚   โ””โ”€โ”€ div.gv-grid-col-1-3
            โ”‚       โ””โ”€โ”€ div.gv-field-{form}-{field}
            โ”‚           โ””โ”€โ”€ div.gv-grid-value
            โ””โ”€โ”€ div.gv-grid-row
                โ””โ”€โ”€ div.gv-grid-col-1-1
                    โ””โ”€โ”€ div.gv-field-{form}-{field}
                        โ””โ”€โ”€ div.gv-grid-value

    HTML example:

    <div id="gv-view-63-1" class="gv-template-layout-builder">
    
      <div class="gv-grid gv-widgets-header">
        <div class="gv-grid-row">
          <div class="gv-grid-col-1-1 gv-left">
            <!-- Search widget here -->
          </div>
        </div>
      </div>
    
      <div class="gv-layout-builder-container gv-layout-builder-multiple-container gv-container gv-container-63">
    
        <div class="gv-layout-builder-view gv-layout-builder-view--entry gv-grid">
          <div class="gv-grid-row">
            <div class="gv-grid-col-2-3">
              <div id="gv-field-3-1" class="gv-field-3-1">
                <div class="gv-grid-value">
                  <a href="/your-view-page/entry/8/">John Doe</a>
                </div>
              </div>
            </div>
            <div class="gv-grid-col-1-3">
              <div id="gv-field-3-date_created" class="gv-field-3-date_created">
                <div class="gv-grid-value">
                  September 16, 2025
                </div>
              </div>
            </div>
          </div>
          <div class="gv-grid-row">
            <div class="gv-grid-col-1-1">
              <div id="gv-field-3-4" class="gv-field-3-4">
                <div class="gv-grid-value">Springfield, IL</div>
              </div>
              <div id="gv-field-3-5" class="gv-field-3-5">
                <div class="gv-grid-value">
                  Full time
                </div>
              </div>
            </div>
          </div>
        </div>
    
      </div>
    </div>

    Note: The BEM modifier .gv-layout-builder-view--entry distinguishes entry blocks. The .gv-featured-entry class is available in the stylesheet for styling featured entries, but it is not applied automatically. To add it, use the gravityview/template/layout-builder/entry/class filter to conditionally add the class (e.g., for starred entries).

    Single entry

    Key differences:

    • Container uses .gv-layout-builder-single-container
    • Back link inside container
    • Single grid row with all fields stacked in .gv-grid-col-1-1
    • Fields include span.gv-field-label before value

    HTML example:

    <div class="gv-layout-builder-container gv-layout-builder-single-container gv-container gv-container-63">
    
      <p class="gv-back-link">
        <a data-viewid="63" href="/your-view-page/">โ† Go back</a>
      </p>
    
      <div class="gv-layout-builder-view gv-layout-builder-view--entry gv-grid">
        <div class="gv-grid-row">
          <div class="gv-grid-col-1-1">
    
            <div id="gv-field-3-date_created" class="gv-field-3-date_created">
              <span class="gv-field-label">Date created</span>
              <div class="gv-grid-value">September 16, 2025</div>
            </div>
    
            <div id="gv-field-3-1" class="gv-field-3-1">
              <span class="gv-field-label">Name</span>
              <div class="gv-grid-value">John Doe</div>
            </div>
    
            <div id="gv-field-3-6" class="gv-field-3-6">
              <span class="gv-field-label">Category</span>
              <div class="gv-grid-value">Full time</div>
            </div>
    
            <div id="gv-field-3-4" class="gv-field-3-4">
              <span class="gv-field-label">Location</span>
              <div class="gv-grid-value">Springfield, IL</div>
            </div>
    
            <div id="gv-field-3-3" class="gv-field-3-3">
              <span class="gv-field-label">Description</span>
              <div class="gv-grid-value">
                <p>A detailed description of the entry goes here.</p>
              </div>
            </div>
    
          </div>
        </div>
      </div>
    </div>

    No results state

    <div class="gv-no-results">
      <div class="gv-layout-builder-view-title">
        <h3>No entries match your request.</h3>
      </div>
    </div>

    Filter: gravityview/template/layout-builder/entry/class modifies entry class.

    DataTables layout #

    Multiple entries

    The DataTables layout extends the Table layout with the DataTables.net JavaScript library. The underlying table structure reuses Table layout classes, but adds DataTables-specific wrappers and controls.

    Class hierarchy:

    div#gv-view-{id}-1.gv-template-datatables
    โ”œโ”€โ”€ div.gv-grid.gv-widgets-header (widget zone)
    โ””โ”€โ”€ div#gv-datatables-{id}.gv-datatables-container.gv-container.gv-container-{id}
        โ””โ”€โ”€ div#DataTables_Table_0_wrapper.dataTables_wrapper
            โ”œโ”€โ”€ div.dt-buttons (export buttons)
            โ”œโ”€โ”€ div.dataTables_length (page size selector)
            โ”œโ”€โ”€ div.dataTables_processing (loading indicator)
            โ”œโ”€โ”€ table.gv-datatables.display.dataTable.nowrap.dtr-inline
            โ”‚   โ”œโ”€โ”€ thead > tr > th.gv-field-{form}-{field}.sorting
            โ”‚   โ”œโ”€โ”€ tbody > tr.odd|.even > td
            โ”‚   โ””โ”€โ”€ tfoot > tr > th
            โ”œโ”€โ”€ div.dataTables_info (entry count)
            โ””โ”€โ”€ div.dataTables_paginate.paging_simple_numbers (pagination)

    HTML example:

    <div id="gv-view-85-1" class="gv-template-datatables">
    
      <div class="gv-grid gv-widgets-header">
        <div class="gv-grid-row">
          <div class="gv-grid-col-1-1 gv-left">
            <!-- Search widget -->
          </div>
        </div>
      </div>
    
      <div id="gv-datatables-85" class="gv-datatables-container gv-container gv-container-85">
        <div id="DataTables_Table_0_wrapper" class="dataTables_wrapper">
    
          <div class="dt-buttons">
            <button class="dt-button buttons-csv buttons-html5" type="button">
              <span>CSV</span>
            </button>
            <button class="dt-button buttons-excel buttons-html5" type="button">
              <span>Excel</span>
            </button>
            <button class="dt-button buttons-print" type="button">
              <span>Print</span>
            </button>
            <button class="dt-button buttons-collection buttons-colvis" type="button">
              <span>Columns</span><span class="dt-down-arrow">&#x25BC;</span>
            </button>
          </div>
    
          <div class="dataTables_length" id="DataTables_Table_0_length">
            <label>Show
              <select name="DataTables_Table_0_length">
                <option value="10">10</option>
                <option value="25">25</option>
                <option value="50">50</option>
                <option value="-1">All</option>
              </select> entries
            </label>
          </div>
    
          <div class="dataTables_processing" role="status" style="display: none;">
            <div class="dataTables_processing_text">Loading data&hellip;</div>
            <div><div></div><div></div><div></div><div></div></div>
          </div>
    
          <table data-viewid="85"
                 class="gv-datatables display dataTable nowrap dtr-inline"
                 id="DataTables_Table_0">
            <thead>
              <tr>
                <th id="gv-field-4-1" class="gv-field-4-1 sorting" scope="col">
                  <span class="gv-field-label">Name</span>
                </th>
                <th id="gv-field-4-3" class="gv-field-4-3 sorting" scope="col">
                  <span class="gv-field-label">Department</span>
                </th>
              </tr>
            </thead>
            <tbody>
              <tr class="odd">
                <td data-row-index="0" data-column-index="0" class="dtr-control">
                  <a href="...">John Doe</a>
                </td>
                <td data-row-index="0" data-column-index="1">Engineering</td>
              </tr>
              <tr class="even">
                <td data-row-index="1" data-column-index="0" class="dtr-control">
                  <a href="...">Emily Smith</a>
                </td>
                <td data-row-index="1" data-column-index="1">Marketing</td>
              </tr>
            </tbody>
            <tfoot>
              <tr>
                <th class="gv-field-4-1" scope="col">
                  <span class="gv-field-label">Name</span>
                </th>
                <th class="gv-field-4-3" scope="col">
                  <span class="gv-field-label">Department</span>
                </th>
              </tr>
            </tfoot>
          </table>
    
          <div class="dataTables_info" role="status" aria-live="polite">
            Showing 1 to 10 of 10 entries
          </div>
    
          <div class="dataTables_paginate paging_simple_numbers">
            <a class="paginate_button previous disabled">Previous</a>
            <span>
              <a class="paginate_button current" aria-current="page">1</a>
            </span>
            <a class="paginate_button next disabled">Next</a>
          </div>
    
        </div>
      </div>
    </div>

    Separating GravityView classes from DataTables library classes

    GravityView classes:

    • gv-template-datatables, gv-datatables-container, gv-datatables, gv-field-{form}-{field}, gv-field-label, gv-container, gv-container-{id}

    DataTables library classes:

    • dataTables_wrapper, dataTable, display, nowrap, dtr-inline, dtr-control, sorting, odd, even, dataTables_length, dataTables_filter, dataTables_info, dataTables_paginate, paginate_button, current, previous, next, disabled

    DataTables Buttons extension classes:

    • dt-buttons, dt-button, buttons-csv, buttons-excel, buttons-print, buttons-html5, buttons-collection, buttons-colvis, dt-down-arrow

    Single entry

    The DataTables single-entry view uses the standard Table layout single-entry template โ€” no DataTables-specific markup. See the Table layout section.

    Filter: gravityview_datatables_table_class modifies table CSS classes. See DataTables styling documentation for DataTables library classes.

    External documentation: DataTables.net styling documentation

    Maps layout #

    The Maps layout displays entries as markers on a Google Map with an entry listing table below (or above) the map. The map container is placed in the header widget zone, and the entry listing uses the standard Table layout with a .gv-has-map modifier.

    Map container

    The map is rendered inside the header widget area using Google Maps JavaScript API.

    HTML example:

    <div id="gv-map-canvas-31"
         class="gv-map-canvas gk-map-canvas gk-multi-entry-map gk-map-visible gk-map-markers-generated gk-map-generated"
         data-entryid=""
         data-gk-map='{"view_id":31,"entry_id":"","is_multi_entry_map":true,"markers_data":[...]}'
         data-gk-map-settings='{"MapOptions":{...},"icon":{...},"layers":{...}}'
         style="position: relative; overflow: hidden;">
      <!-- Google Maps renders its internal DOM here -->
    </div>

    Entry listing

    The entry listing uses the standard Table layout structure with the .gv-has-map modifier:

    <div class="gv-table-view gv-table-container gv-table-multiple-container gv-container gv-container-31 gv-has-map">
      <table class="gv-table-view">
        <thead>
          <tr>
            <th id="gv-field-5-1" class="gv-field-5-1" data-label="Name">
              <span class="gv-field-label">Name</span>
            </th>
          </tr>
        </thead>
        <tbody>
          <tr class="alt" data-row="0">
            <td id="gv-field-5-1" class="gv-field-5-1" data-label="Name">
              John Doe
            </td>
          </tr>
        </tbody>
        <tfoot></tfoot>
      </table>
    </div>

    Info window structure

    Info windows (marker popups) are rendered when a marker is clicked. The HTML is stored in the data-gk-map JSON attribute.

    Without image:

    <div class="gv-infowindow-container gv-infowindow-no-image">
      <div class="gv-infowindow-content">
        <h4>
          <a href="/your-view-page/entry/3/" class="gv-infowindow-entry-link">
            John Doe
          </a>
        </h4>
        <p>123 Main Street, Springfield, Illinois 62701</p>
      </div>
    </div>

    With image:

    <div class="gv-infowindow-container">
      <div class="gv-infowindow-image">
        <img src="..." alt="...">
      </div>
      <div class="gv-infowindow-content">
        <h4>
          <a href="..." class="gv-infowindow-entry-link">Business Name</a>
        </h4>
        <p>Address details</p>
      </div>
    </div>

    Geolocation search

    The geolocation search field adds location-based filtering with address autocomplete, current-location button, and radius/unit selectors.

    HTML example:

    <div class="gv-search-box gk-search-geolocation-field">
      <input type="hidden" class="gk-maps-search-current-geolocation-has-search" value="0">
      <input type="hidden" class="gk-maps-current-view" value="31">
      <input type="hidden" name="lat" class="gk-maps-search-geolocation-lat" value="0" disabled>
      <input type="hidden" name="long" class="gk-maps-search-geolocation-lng" value="0" disabled>
    
      <div class="gv-grid-col-1-1">
        <label for="search-box-filter_geolocation">Geolocation Radius</label>
      </div>
    
      <div class="gv-grid-col-1-1">
        <div class="gk-maps-search-geolocation-address-autocomplete-container">
          <input type="text"
                 class="gk-maps-search-geolocation-address-autocomplete pac-target-input"
                 name="address_search" value="" placeholder="Enter a location">
          <button type="button" class="gk-maps-search-current-geolocation"
                  title="Click to use current location">
            <svg><!-- location pin icon --></svg>
          </button>
        </div>
      </div>
    
      <div class="gv-grid-col-1-1">
        <select name="filter_geolocation"
                class="gk-maps-search-current-geolocation-radius">
          <option value="1">1</option>
          <option value="5" selected>5</option>
          <option value="10">10</option>
        </select>
        <select name="unit" class="gk-maps-search-current-geolocation-unit">
          <option value="km">Kilometers</option>
          <option selected value="mi">Miles</option>
        </select>
      </div>
    </div>

    Maps-specific classes

    GravityView Maps classes (gk-* prefix):

    • gk-map-canvas โ€” Map canvas container
    • gk-multi-entry-map โ€” Multi-entry map identifier
    • gk-map-visible, gk-map-markers-generated, gk-map-generated โ€” Map state classes
    • gk-search-geolocation-field โ€” Geolocation search container
    • gk-maps-search-geolocation-address-autocomplete โ€” Address input
    • gk-maps-search-current-geolocation โ€” Current location button
    • gk-maps-search-current-geolocation-radius โ€” Radius selector
    • gk-maps-search-current-geolocation-unit โ€” Unit selector (km/mi)

    Info window classes:

    • gv-infowindow-container โ€” Outer wrapper
    • gv-infowindow-no-image โ€” Modifier for entries without images
    • gv-infowindow-image โ€” Image container
    • gv-infowindow-content โ€” Content area
    • gv-infowindow-entry-link โ€” Link to entry detail

    Google Maps library classes (gm-* prefix):

    These classes are generated by the Google Maps JavaScript API โ€” they are NOT GravityView classes:

    • gm-style, gm-bundled-control, gm-fullscreen-control, gm-style-cc, gm-style-mtc, etc.

    DIY layout #

    The DIY layout provides minimal markup for maximum customization flexibility. Unlike other layouts, DIY intentionally has almost no structural HTML.

    Multiple entries

    Class hierarchy:

    div#gv-view-{id}-{seq}.gv-container.gv-container-{id}.gv-diy-container.gv-diy-multiple-container
    โ””โ”€โ”€ div#gv_diy_{entry_slug}.gv-diy-view
        โ”œโ”€โ”€ {field value} (bare output, no wrapper by default)
        โ”œโ”€โ”€ <div class="{css_classes}">Value</div> (with container tag)
        โ””โ”€โ”€ {Before HTML}{value}{After HTML} (with Before/After Output)

    HTML example:

    <div id="gv-view-100-1"
         class="gv-container gv-container-100 gv-diy-container gv-diy-multiple-container">
    
      <div id="gv_diy_abc123" class="gv-diy-view">
        John Doe
        <div class="custom-field-class">john@example.com</div>
        <strong>Phone:</strong> 555-1234<br>
      </div>
    
      <div id="gv_diy_def456" class="gv-diy-view">
        Jane Smith
        <div class="custom-field-class">jane@example.com</div>
        <strong>Phone:</strong> 555-5678<br>
      </div>
    
    </div>

    Single entry

    Key differences:

    • Container uses .gv-diy-single-container
    • Back link before container
    • Both container and entry classes on same element (.gv-diy-view.gv-diy-container.gv-diy-single-container)

    HTML example:

    <p class="gv-back-link"><a href="/your-view-page/">&larr; Go back</a></p>
    
    <div id="gv_diy_abc123"
         class="gv-container gv-container-100 gv-diy-view gv-diy-container gv-diy-single-container">
    
      John Doe
      <div class="email-field">john@example.com</div>
      <p>Full bio text here...</p>
    
    </div>

    No results state

    <div class="gv-diy-view gv-no-results gv-no-results-text">
      <div class="gv-diy-view-title">
        <h3>No entries match your request.</h3>
      </div>
    </div>

    Available filters

    DIY provides extensive customization through filters:

    • gravityview-diy/container โ€” Change or remove container element (default: div)
    • gravityview-diy/wrap/multiple โ€” Toggle entry wrapping in the multiple-entry view (default: true)
    • gravityview-diy/wrap/single โ€” Toggle entry wrapping in the single-entry view (default: true)
    • Per-field Container Tag setting โ€” Choose from: none, div, h1–h4, p, blockquote, pre, address
    • Per-field Before/After Output HTML โ€” Supports Merge Tags for dynamic content

    Note: DIY is intentionally minimal for maximum customization. Fields output bare values with no labels, no wpautop processing, and no default wrapper classes.

    Edit Entry #

    The Edit Entry view is a shared component that appears across all layouts. When a user clicks an “Edit Entry” link, GravityView renders a form using Gravity Forms’ native GFFormDisplay::get_form(), wrapped in GravityView-specific containers.

    Complete structure

    <div class="gv-edit-entry-wrapper">
    
      <h2 class="gv-edit-entry-title">
        <span>Edit Entry</span>
      </h2>
    
      <div class="gv-notice">
        Entry Updated. <a href="{back_link}">Return to Entry</a>
      </div>
    
      <form method="post" id="gform_{form_id}" enctype="multipart/form-data">
    
        <input type="hidden" name="is_gv_edit_entry" value="..." />
    
        <div class="gform_wrapper gravity-theme">
          <div class="gform_body">
            <ul class="gform_fields">
              <li class="gfield">
                <label class="gfield_label">Field Label</label>
                <div class="ginput_container ginput_container_{field_type}">
                  <!-- Input elements -->
                </div>
              </li>
            </ul>
          </div>
    
          <div class="gform-footer">
            <div id="publishing-action">
    
              <!-- Previous button (multi-page forms only) -->
              <input id="gform_previous_button_{form_id}"
                     class="btn btn-lg button button-large gform_button button-primary gv-button-previous"
                     type="submit" value="Previous" name="save" />
    
              <!-- Next button (multi-page forms only) -->
              <input id="gform_next_button_{form_id}"
                     class="btn btn-lg button button-large gform_button button-primary gv-button-next"
                     type="submit" value="Next" name="save" />
    
              <!-- Update button -->
              <input id="gform_submit_button_{form_id}"
                     class="btn btn-lg button button-large gform_button button-primary gv-button-update"
                     type="submit" value="Update" name="save" />
    
              <!-- Cancel link -->
              <a class="btn btn-sm button button-small gv-button-cancel"
                 onclick="history.go({-N}); return false;"
                 href="{back_link}">
                Cancel
              </a>
    
              <!-- Delete button (added by Delete Entry extension) -->
              <a class="btn btn-sm button button-small alignright pull-right btn-danger gv-button-delete"
                 onclick="{confirm_dialog}" href="{delete_url}">
                Delete
              </a>
    
              <input type="hidden" name="action" value="update" />
            </div>
          </div>
        </div>
    
      </form>
    </div>

    Cancel button behavior

    The cancel button’s onclick dynamically calculates how many history steps to go back based on how many times the entry has been updated in the current session. On first visit, it is history.go(-1). After two updates, it becomes history.go(-3). The formula is (update_count + 1) * -1. For multi-page (paged) forms, it uses window.location.href instead of history.go().

    Button classes

    Update button:

    btn btn-lg button button-large gform_button button-primary gv-button-update

    Cancel button:

    btn btn-sm button button-small gv-button-cancel

    Delete button:

    btn btn-sm button button-small alignright pull-right btn-danger gv-button-delete

    Previous/Next buttons (multi-page forms):

    btn btn-lg button button-large gform_button button-primary gv-button-previous
    btn btn-lg button button-large gform_button button-primary gv-button-next

    Success/error notices

    After an entry is updated, a notice is displayed:

    <div class="gv-notice">
      Entry Updated. <a href="{back_link}">Return to Entry</a>
    </div>

    The notice can have an error class for validation failures:

    <div class="gv-notice error">
      There was an error updating this entry.
    </div>

    Gravity Forms CSS Ready Classes support

    Edit Entry fully supports Gravity Forms CSS Ready Classes because the form is rendered using the native GFFormDisplay::get_form() engine. All standard GF layout classes work:

    • gf_left_half / gf_right_half โ€” Two-column layout
    • gf_left_third / gf_middle_third / gf_right_third โ€” Three-column layout
    • gf_inline โ€” Inline fields
    • gf_list_2col / gf_list_3col etc. โ€” Multi-column choice lists

    The Gravity Forms 2.5+ “gravity-theme” wrapper is also included, providing the modern form styling framework. See Gravity Forms CSS Ready Classes documentation for the full list of available layout classes.

    Search bar widget #

    The search widget appears in the header widget zone of any layout. It supports horizontal and vertical layouts, various field types (text, select, date, number range), and optional clear buttons.

    Search layout classes

    The search form uses one of two layout classes on the <form> element:

    • .gv-search-horizontal โ€” Fields displayed side by side (horizontal layout)
    • .gv-search-vertical โ€” Fields stacked vertically (vertical layout)

    These classes are set based on the “Search Layout” setting in the Search Bar widget configuration.

    Horizontal layout

    Class hierarchy:

    form.gv-widget-search.gv-search-horizontal.gv-search-rows
    โ””โ”€โ”€ div.gv-widget-search-general-search.gv-grid
        โ”œโ”€โ”€ div.gv-grid-row
        โ”‚   โ””โ”€โ”€ div.gv-grid-col-1-1
        โ”‚       โ””โ”€โ”€ div.gv-search-widget-area.gv-search-horizontal
        โ”‚           โ”œโ”€โ”€ div.gv-search-box.gv-search-field-text.gv-search-field-search_all
        โ”‚           โ”œโ”€โ”€ div.gv-search-box.gv-search-field-select
        โ”‚           โ”œโ”€โ”€ div.gv-search-box.gv-search-date.gv-search-field-entry_date
        โ”‚           โ””โ”€โ”€ div.gv-search-box.gv-search-field-text
        โ””โ”€โ”€ div.gv-grid-row (submit row)
            โ”œโ”€โ”€ div.gv-grid-col-1-2
            โ”‚   โ””โ”€โ”€ div.gv-search-box.gv-search-box-submit
            โ”‚       โ”œโ”€โ”€ a.button.gv-search-clear (optional)
            โ”‚       โ””โ”€โ”€ input.button.gv-search-button
            โ””โ”€โ”€ div.gv-grid-col-1-2
                โ””โ”€โ”€ input[type=hidden][name=mode]

    Search box types

    • Text: div.gv-search-box.gv-search-field-text
    • Search all: div.gv-search-box.gv-search-field-text.gv-search-field-search_all
    • Select: div.gv-search-box.gv-search-field-select
    • Multiselect: div.gv-search-box.gv-search-field-multiselect
    • Checkbox: div.gv-search-box.gv-search-field-checkbox
    • Radio: div.gv-search-box.gv-search-field-radio
    • Link: div.gv-search-box.gv-search-field-link.gv-search-box-links
    • Date: div.gv-search-box.gv-search-date.gv-search-field-entry_date
    • Date range: div.gv-search-box.gv-search-date-range
    • Number range: div.gv-search-box.gv-search-number.gv-search-number-range

    Buttons

    • Submit: input.button.gv-search-button
    • Clear: a.button.gv-search-clear

    Active search state

    The form receives .gv-is-search class when an active search is in progress.

    Advanced search

    Advanced search sections use:

    • .gv-widget-search-advanced-search โ€” Container
    • .gv-search-advanced--open โ€” Expanded state

    HTML example

    <form class="gv-widget-search gv-search-horizontal gv-search-rows"
          method="get" action="/your-view-page/#gv-view-47-1"
          data-viewid="47">
    
      <div class="gv-widget-search-general-search gv-grid">
        <div class="gv-grid-row">
          <div class="gv-grid-col-1-1">
            <div class="gv-search-widget-area gv-search-horizontal">
    
              <div class="gv-search-box gv-search-field-text gv-search-field-search_all">
                <div class="gv-search">
                  <label for="gv_search_47">Search entries</label>
                  <p>
                    <input type="search" name="gv_search" id="gv_search_47" value="">
                  </p>
                </div>
              </div>
    
              <div class="gv-search-box gv-search-field-select">
                <label for="search-box-filter_5">Status</label>
                <p>
                  <select name="filter_5" id="search-box-filter_5">
                    <option value="" selected>โ€”</option>
                    <option value="Active">Active</option>
                    <option value="Inactive">Inactive</option>
                  </select>
                </p>
              </div>
    
              <div class="gv-search-box gv-search-date gv-search-field-entry_date">
                <label for="gv_start_date_47">Filter by date:</label>
                <p>
                  <input name="gv_start" id="gv_start_date_47" type="text"
                         class="gv-datepicker datepicker mdy hasDatepicker" value="">
                </p>
              </div>
    
            </div>
          </div>
        </div>
    
        <div class="gv-grid-row">
          <div class="gv-grid-col-1-2">
            <div class="gv-search-widget-area">
              <div class="gv-search-box gv-search-box-submit">
                <input type="submit" class="button gv-search-button" value="Search">
              </div>
            </div>
          </div>
          <div class="gv-grid-col-1-2">
            <div class="gv-search-widget-area">
              <input type="hidden" name="mode" value="any">
            </div>
          </div>
        </div>
      </div>
    
    </form>

    The gv_class() function #

    The gv_class() function (a wrapper for GravityView_API::field_class()) generates CSS classes for field containers. It is used across all layouts.

    How it works

    The function builds an array of CSS classes from two sources:

    1. Custom class setting โ€” If the field has a custom_class setting (configured in the View Editor), it is added with Merge Tag support

    2. Field ID class โ€” Generates gv-field-{form_id}-{field_id} format

    Format pattern

    gv-field-{form_id}-{field_id}

    Concrete examples

    Form ID Field ID Generated Class
    1 5 gv-field-1-5
    3 12 gv-field-3-12
    1 1.3 gv-field-1-1.3 (Address Street sub-field)
    1 1.6 gv-field-1-1.6 (Address Country sub-field)

    Complex fields (address sub-fields)

    Address, Name, and other composite fields have sub-fields with decimal IDs:

    • Address field 1, Street: gv-field-1-1.3
    • Address field 1, Country: gv-field-1-1.6

    Cross-form fields (joins)

    When a field comes from a different form than the View’s primary form, an additional class is added:

    <div class="gv-field-1-5 gv-field-3-5">
      <!-- Field ID 5 from form 3, displayed in form 1's View -->
    </div>

    Merge Tag CSS class conversion

    Custom classes support Merge Tags. The field value is sanitized with sanitize_html_class(), which strips spaces and special characters.

    Example:

    Custom class {Status:8} where Status = “Office Manager” produces class OfficeManager (single class token, not two separate classes).

    Filter hook

    The gravityview/field_output/context/class filter allows customization:

    add_filter( 'gravityview/field_output/context/class', function( $class, $args, $context ) {
        return $class . ' my-custom-class';
    }, 10, 3 );

    Grid system #

    GravityView uses its own responsive grid system across all layouts and widgets.

    Grid column classes

    Class Width Description
    .gv-grid โ€” Grid container
    .gv-grid-row 100% Grid row
    .gv-grid-col-1-1 100% Full-width column
    .gv-grid-col-1-2 50% Half-width column
    .gv-grid-col-1-3 33.3% One-third width column
    .gv-grid-col-2-3 66.6% Two-thirds width column
    .gv-grid-col-1-4 25% Quarter-width column
    .gv-grid-col-1-6 16.6% One-sixth width column
    .gv-grid-col-1-8 12.5% One-eighth width column

    Alignment classes

    Class Description
    .gv-left Left-aligned content (widget zones, footers)
    .gv-right Right-aligned content (List layout footers)

    See also: Adding Custom CSS Classes to fields or widgets

    Responsive behavior

    Grid columns collapse to 100% width at:

    • 320px (mobile portrait)
    • 480px (mobile landscape)

    Other styles #

    Back link

    The back link appears on single-entry Views across all layouts:

    <p class="gv-back-link">
      <a data-viewid="47" href="/your-view-page/">โ† Go back</a>
    </p>

    Pagination widget classes

    • Page links: .gv-widget-page-links container
      • .page-numbers โ€” List and link class
      • .page-numbers.current โ€” Current page
      • .prev.page-numbers โ€” Previous button
      • .next.page-numbers โ€” Next button
    • Pagination info: .gv-widget-pagination (“Displaying X – Y of Z”)
    • Page size: .gv-widget-page-size container

    Sort indicator classes

    Table layout column headers with sorting enabled use:

    • .gv-sort โ€” Base class on sort link
    • .gv-icon-caret-up-down โ€” Neutral sort state
    • .gv-icon-sort-asc โ€” Sorted ascending
    • .gv-icon-sort-desc โ€” Sorted descending

    No results state classes

    • .gv-no-results โ€” No entries wrapper
    • .gv-no-results-text โ€” Text message variant
    • .gv-no-results-form โ€” Embedded form variant
    • .gv-container-no-results โ€” Container modifier when no entries

    Other utility classes

    • .gv-powered-by โ€” “Powered by GravityView” credit
    • .gv-widgets-header โ€” Header widget zone
    • .gv-widgets-footer โ€” Footer widget zone

    Responsive breakpoints

    SCSS variables:

    • $mobile-portrait: 320px
    • $mobile-landscape: 480px
    • $small-tablet: 600px
    • $tablet-portrait: 768px

    Behavior:

    • Grid columns collapse to 100% at 320px and 480px
    • Table layout: <thead> and <tfoot> hidden at โ‰ค575.98px; <td> displayed as block
    • Layout Builder: stacks at 768px
    • Edit Entry: buttons stack at 400px

    CSS customization filters #

    Container filters

    gravityview/render/container/class

    Modify the CSS class added to the wrapper <div> of a View.

    Parameter Type Description
    $css_class string Default: gv-container gv-container-{view_id}. Adds gv-container-no-results when no entries, gv-hidden when hidden until searched.
    $context \GV\Template_Context The template context object.

    Since: 1.5.4, 2.0

    add_filter( 'gravityview/render/container/class', function( $css_class, $context ) {
        return $css_class . ' my-custom-container';
    }, 10, 2 );

    gravityview/view/wrapper_container

    Modify the wrapper container HTML markup.

    Parameter Type Description
    $wrapper_container string Wrapper container HTML markup.
    $anchor_id string (optional) Unique anchor ID to identify the View.
    $view \GV\View The View object.

    Since: 2.15

    add_filter( 'gravityview/view/wrapper_container', function( $wrapper, $anchor_id, $view ) {
        return '<section id="' . esc_attr( $anchor_id ) . '" class="gv-template-table">{content}</section>';
    }, 10, 3 );

    Entry row filters

    gravityview/template/table/entry/class

    Modify the class applied to each entry row in Table layout.

    Parameter Type Description
    $class string The existing class.
    $context \GV\Template_Context The template context object.

    Since: 2.0.6.1

    add_filter( 'gravityview/template/table/entry/class', function( $class, $context ) {
        $entry = $context->entry->as_entry();
        if ( ! empty( $entry['is_starred'] ) ) {
            $class .= ' gv-featured-entry';
        }
        return $class;
    }, 10, 2 );

    gravityview/template/table/entry/row/attributes

    Filter the HTML attributes for a row in Table layout.

    Parameter Type Description
    $attributes array The HTML attributes.
    $context \GV\Template_Context The template context object.

    Since: 2.0

    gravityview/template/list/entry/class

    Modify the class applied to each entry in List layout.

    Parameter Type Description
    $class string The existing class.
    $context \GV\Template_Context The template context object.

    Since: 2.0.6.1

    gravityview/template/layout-builder/entry/class

    Modify the class applied to each entry in Layout Builder layout.

    Parameter Type Description
    $class string The existing class.
    $context \GV\Template_Context The template context object.

    Since: 2.46.2

    gravityview_entry_class (deprecated)

    Modify the class applied to an entry row. Use the layout-specific filters above instead.

    Parameter Type Description
    $class string Existing class. Default: alt for odd rows, empty string for even rows.
    $entry array Current entry being displayed.
    $view \GravityView_View Current GravityView_View object.

    Field filters

    gravityview/field_output/context/{$tag}

    Filter content for a specific template tag placeholder. For CSS class customization, use the class tag: gravityview/field_output/context/class.

    Parameter Type Description
    $value string The content to be shown instead of the {{ tag }} placeholder.
    $args array Arguments passed to the function.
    $context \GV\Template_Context The template context object.

    Since: 1.11, 2.0

    add_filter( 'gravityview/field_output/context/class', function( $class, $args, $context ) {
        return $class . ' custom-field-class';
    }, 10, 3 );

    gravityview/field_output/args

    Modify the args before field output generation begins.

    Parameter Type Description
    $args array Associative array; field and form are required.
    $passed_args array Original associative array with field data.
    $context \GV\Template_Context The template context object.

    Since: 1.7, 2.0

    gravityview_field_output

    Modify the final rendered field HTML output.

    Parameter Type Description
    $html string Existing HTML output.
    $args array Arguments passed to the function.
    $context \GV\Template_Context The template context object.

    Since: 2.0

    gravityview/field_output/pre_html

    Modify the field HTML template before placeholder replacement.

    Parameter Type Description
    $markup string The HTML markup template.
    $args array All args for the field output.
    $context \GV\Template_Context The template context object.

    Since: 1.11, 2.0

    Search filters

    gravityview_search_class

    Modify the CSS class for the search form.

    Parameter Type Description
    $search_class string The CSS class for the search form.
    add_filter( 'gravityview_search_class', function( $search_class ) {
        return $search_class . ' custom-search-class';
    });

    gk/gravityview/search/widget/grid/column-class

    Filter the CSS class for search widget grid columns.

    Parameter Type Description
    $column_class string The CSS class for the column (e.g., gv-grid-col-1-3).
    $col string The original column specification.
    $areas array Array of areas within the column.
    $search_fields \Search_Field_Collection The search fields collection.

    Since: 2.44

    DIY-specific filters

    gravityview-diy/container

    Changes the container element type (default: 'div'). Return false or empty string to remove container.

    add_filter( 'gravityview-diy/container', function() {
        return 'section'; // or '__return_false' to remove
    });

    gravityview-diy/wrap/multiple

    Toggles entry wrapping in the multiple-entry view (default: true).

    gravityview-diy/wrap/single

    Toggles entry wrapping in the single-entry view (default: true).

    gravityview-diy/container-tags

    Modifies available container tag options for field wrapping.

    Returns: array of 'tag' => 'LABEL'

    Widget zone filters

    gravityview/widgets/wrapper_css_class

    Modify the CSS class applied to the widget zone wrapper <div> (the .gv-widgets-header and .gv-widgets-footer containers).

    Parameter Type Description
    $css_class string Default: gv-grid gv-widgets-{zone}. Adds gv-widgets-no-results when the View has no results.
    $zone string Current widget zone: header or footer.
    $widgets array Array of widget configurations for the current zone.

    Since: 1.16.2

    add_filter( 'gravityview/widgets/wrapper_css_class', function( $css_class, $zone, $widgets ) {
        if ( 'header' === $zone ) {
            $css_class .= ' my-custom-header';
        }
        return $css_class;
    }, 10, 3 );

    Other filters

    gravityview_lightbox_script

    Override the lightbox script to enqueue. Default: thickbox.

    Parameter Type Description
    $script_slug string If you want to use a different lightbox script, return the name of it here.
    $view \GV\View The View object.

    Since: 2.5.1

    add_filter( 'gravityview_lightbox_script', function( $script_slug ) {
        return 'my-lightbox-script';
    }, 10, 2 );

    gravityview_datatables_table_class

    Modifies the CSS classes applied to the DataTables <table> element.

    Parameter Type Description
    $classes array Array of CSS class strings.
    add_filter( 'gravityview_datatables_table_class', function( $classes ) {
        $classes[] = 'my-custom-table-class';
        return $classes;
    });

    Related links #

    • All about the View container
    • Adding custom CSS classes to fields or widgets
    • Gravity Forms CSS Ready Classes documentation
    • DataTables styling documentation
    • GravityView developer documentation
    Still stuck? How can we help?

    How can we help?

    "*" indicates required fields

    This field is for validation purposes and should be left unchanged.
    Replies will go to this email.
    How can we help?*
    My pre-sale question is related to...*
    My WordPress skills are....*
    My Gravity Forms skills are...*
    You will be shown articles from our documentation.
    Vous pouvez nous รฉcrire dans votre langue maternelle si cโ€™est plus facile pour vousโ€”nous nous occuperons de la traduction!
    Puedes escribirnos en tu idioma nativo si te resulta mรกs fรกcil; ยกnosotros nos encargamos de la traducciรณn!
    Sie kรถnnen uns in Ihrer Muttersprache schreiben, wenn das fรผr Sie einfacher ist โ€“ wir kรผmmern uns um die รœbersetzung!
    U kunt ons in uw moedertaal schrijven als dat gemakkelijker voor u is โ€” wij zorgen voor de vertaling!
    Du kan skrive til oss pรฅ ditt morsmรฅl hvis det er enklere for deg โ€” vi tar oss av oversettelsen!
    Du kan skriva till oss pรฅ ditt modersmรฅl om det รคr lรคttare fรถr dig โ€” vi tar hand om รถversรคttningen!
    Vocรช pode nos escrever em seu idioma nativo se for mais fรกcil para vocรช โ€” nรณs cuidaremos da traduรงรฃo!
    Puoi scriverci nella tua lingua madre se ti รจ piรน facile โ€” penseremo noi alla traduzione!
    Please provide as much detail as you're able; this helps us provide you with faster support.
    Drop files here or
    Accepted file types: jpg, jpeg, gif, png, tiff, pdf, bmp, zip, json, csv, xls, xlsx, Max. file size: 256 MB.
      Stay informed?

      Was this page helpful?

      Table Of Contents
      • Table of contents
      • Container wrapper
      • Table layout
      • List layout
      • Layout Builder layout
      • DataTables layout
      • Maps layout
      • DIY layout
      • Edit Entry
      • Search bar widget
      • The gv_class() function
      • Grid system
      • Other styles
      • CSS customization filters
      • Related links
      GravityKit
      • How to Build It
      • Pricing
      • Products
      • Our Team
      • Our Values
      • Work With Us
      • Coupons
      Support
      • Support
      • Contact
      • Documentation
      • Scope of Support
      • Brand Guidelines
      • Privacy Policy
      • Terms of Service (โ€œTermsโ€)
      About Us
      • GravityKit on Mastodon
      • GravityKit on Twitter
      • GravityKit Training Courses
      • GravityKit on Facebook
      • Join our Facebook Group
      • Facebook
      • Twitter
      Get notified of updates.

      Weโ€™re constantly improving GravityKit. Fill out your email below and weโ€™ll notify you anytime major updates drop.

      GravityKit is a Gravity Forms Certified Developer.

      Copyright ยฉ 2026, Katz Web Services, Inc.

      GravityKit and GravityView are registered trademarks of Katz Web Services, Inc.