Description
By default, the “Add Form” button and legacy shortcode UI will only be available on the Post or Page edit screens using the classic editor. The gform_display_add_form_button filter can be used to enable it for other pages or scenarios.
Note: The “Add Form” button requires a TinyMCE input, so in order to display it, you must first include a TinyMCE input to your page.
Usage
1 | add_filter( 'gform_display_add_form_button' , 'display_form_button_on_custom_page' ); |
Parameters
- $display_add_form_button bool
Indicates if the Add Form button and shortcode UI should be included for the current admin page.
1 2 3 4 5 6 7 | $display_add_form_button = ( ! class_exists ( 'GF_Block' ) || class_exists ( 'Classic_Editor' ) ) && in_array( RG_CURRENT_PAGE, array ( 'post.php' , 'page.php' , 'page-new.php' , 'post-new.php' , 'customize.php' , ) ); |
Examples
Generic Examples
Enable based on query string
This example enables the “Add Form” button on a custom page whose URL contains the following query string: “page=my_page”.
1 2 3 4 5 6 7 8 | add_filter( 'gform_display_add_form_button' , 'display_form_button_on_custom_page' ); function display_form_button_on_custom_page( $display_add_form_button ) { if ( isset( $_GET [ 'page' ] ) && $_GET [ 'page' ] == 'my_page' ) { return true; } return $display_add_form_button ; } |
Disable everywhere
Simple example, to disable the “Add Form” button everywhere.
1 | add_filter( 'gform_display_add_form_button' , '__return_false' ); |
Enable everywhere
Simple example, to enable the “Add Form” button everywhere.
1 | add_filter( 'gform_display_add_form_button' , '__return_true' ); |
Enable based on WP_Screen base
This example enables the “Add Form” button if the page is not a post page.
1 2 3 4 5 | add_filter( 'gform_display_add_form_button' , function ( $display_add_form_button ) { global $current_screen ; return $current_screen instanceof WP_Screen && $current_screen ->base != 'post' ? true : $display_add_form_button ; } ); |
Theme Examples
Enable for Divi
This example enables the “Add Form” button for the page and post editor when the Divi theme is active.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | add_filter( 'gform_display_add_form_button' , function ( $display_add_form_button ) { if ( $display_add_form_button || ! class_exists ( 'ET_Builder_Plugin_Compat_Gravityforms' ) ) { return $display_add_form_button ; } $enable_classic_editor = apply_filters( 'et_builder_enable_classic_editor' , isset( $_GET [ 'et_classic_editor' ] ) ); return $enable_classic_editor && in_array( RG_CURRENT_PAGE, array ( 'post.php' , 'page.php' , 'page-new.php' , 'post-new.php' , ) ); } ); |
Enable for Enfold
This example enables the “Add Form” button for some Content Elements in the Advanced Layout Editor of the Enfold theme.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | add_filter( 'gform_display_add_form_button' , function ( $display_add_form_button ) { if ( $display_add_form_button || in_array( RG_CURRENT_PAGE, array ( 'post.php' , 'page.php' , 'page-new.php' , 'post-new.php' , ) ) ) { return true; } if ( ! defined( 'DOING_AJAX' ) || ! DOING_AJAX || rgpost( 'ajax_fetch' ) !== 'true' ) { return false; } $supported_actions = array ( 'avia_ajax_av_textblock' , 'avia_ajax_av_toggle' , 'avia_ajax_av_tab' , 'avia_ajax_av_promobox' , ); return in_array( rgpost( 'action' ), $supported_actions ); } ); |
Plugin Examples
Enable for Advanced Custom Fields
This example enables the “Add Form” button for the page and post editor when the ACF plugin is active.
1 2 3 4 5 6 7 8 9 10 11 12 | add_filter( 'gform_display_add_form_button' , function ( $display_add_form_button ) { if ( $display_add_form_button || ! function_exists( 'acf' ) ) { return $display_add_form_button ; } return in_array( RG_CURRENT_PAGE, array ( 'post.php' , 'page.php' , 'page-new.php' , 'post-new.php' , ) ); } ); |
Enable for The Events Calendar
This example enables the “Add Form” button for the post editor when The Events Calendar plugin is active.
1 2 3 4 5 6 7 8 9 10 | add_filter( 'gform_display_add_form_button' , function ( $display_add_form_button ) { if ( $display_add_form_button || ! class_exists ( 'Tribe__Events__Main' ) ) { return $display_add_form_button ; } return in_array( RG_CURRENT_PAGE, array ( 'post.php' , 'post-new.php' , ) ); } ); |
Enable for multiple plugins
This example enables the “Add Form” button for the page/post editor when the ACF or The Events Calendar plugins are active.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | add_filter( 'gform_display_add_form_button' , function ( $display_add_form_button ) { if ( $display_add_form_button ) { return $display_add_form_button ; } $class_exists = false; $classes = array ( 'ACF' , 'Tribe__Events__Main' , ); foreach ( $classes as $class ) { if ( class_exists ( $class ) ) { $class_exists = true; break ; } } return $class_exists && in_array( RG_CURRENT_PAGE, array ( 'post.php' , 'page.php' , 'page-new.php' , 'post-new.php' , ) ); } ); |
Placement
This code can be used in the functions.php file of the active theme, a custom functions plugin, a custom add-on, or with a code snippets plugin.
See also the PHP section in this article: Where Do I Put This Code?
Source Code
This filter is located in GFForms::page_supports_add_form_button() in gravityforms.php.