Un article que vous avez peut-être manqué sur BricksLabs vous donnes un snippet qui permet de mettre En brouillon une section et ne pas l’afficher sur le front-end.
// Add Section Status Control & Settings + Render add_filter( 'bricks/elements/section/control_groups', function( $control_groups ) { $control_groups['draft_controls'] = [ 'tab' => 'content', // or 'style' 'title' => esc_html__( 'Section Status', 'my_plugin' ), ]; return $control_groups; } ); add_filter( 'bricks/elements/section/controls', function( $controls ) { $controls['draft_controls_active'] = [ 'tab' => 'content', 'group' => 'draft_controls', 'label' => esc_html__( 'Draft section', 'my_plugin' ), 'type' => 'checkbox', ]; return $controls; } ); add_filter( 'bricks/element/render', function( $render, $element ) { if ( $element->name === 'section' && isset( $element->settings["draft_controls_active"] ) && $element->settings["draft_controls_active"] == true ) { $render = false; } return $render; }, 10, 2 );
Vous pouvez également utiliser ce snippet sur tous les éléments du builder avec celui-ci
// Add Draft status control groups and control to all the elements. add_action( 'init', function() { $elements = \Bricks\Elements::$elements; $names = array_keys( $elements ); foreach( $names as $name ) { add_filter( "bricks/elements/{$name}/control_groups", 'bl_add_control_groups' ); add_filter( "bricks/elements/{$name}/controls", 'bl_add_controls' ); } }, 30 ); function bl_add_control_groups( $control_groups ) { $control_groups['draft_controls'] = [ 'tab' => 'content', 'title' => esc_html__( 'Set Draft Status', 'my_plugin' ), ]; return $control_groups; } function bl_add_controls( $controls ) { $controls['draft_controls_active'] = [ 'tab' => 'content', 'group' => 'draft_controls', 'label' => esc_html__( 'Draft status', 'my_plugin' ), 'type' => 'checkbox', ]; return $controls; } add_filter( 'bricks/element/render', function( $render, $element ) { if ( isset( $element->settings["draft_controls_active"] ) && $element->settings["draft_controls_active"] == true ) { $render = false; } return $render; }, 10, 2 );
Un petit snippet très utile dans certains cas !