When the user wants to add more than the same structure field in visual composer then we can use param_group to create the custom VC element.
Step 1: Insert WPBakery Page Builder in your WordPress.
Step 2: Create the “vc-elements” folder in your child’s theme.
Step 3: Create a PHP file inside “vc-elements” that will contain the new element. We have created, for example, services.php
Step 4: Add the following code in function.php in your child theme.
/** * Include VC element. */add_action( 'init', 'vc_shortcode' ); function vc_shortcode() { if ( function_exists('is_plugin_active') && is_plugin_active( 'js_composer/js_composer.php' ) ) { require get_stylesheet_directory() . '/vc-elements/services.php'; } }
Step 5: Now add the vc_map() function in the services.php file, which allows adding new elements inside the Visual Composer.
$shortcode_fields = array( array( 'type' => 'textfield', 'heading' => esc_html__( 'Section Title', 'elem' ), 'param_name' => 'title', 'value' => esc_html__( 'Our Services', 'elem' ), 'description' => esc_html__( 'Enter Section Title.', 'elem' ), 'admin_label' => true, ), array( 'type' => 'textarea', 'heading' => esc_html__( 'Section Description', 'elem' ), 'param_name' => 'desc', 'value' => '', 'description' => esc_html__( 'Enter Section Description.', 'elem' ), 'admin_label' => true, ), // params group array( 'type' => 'param_group', 'value' => '', 'heading' => esc_html__( 'Services', 'elem' ), 'param_name' => 'services', 'params' => array( array( 'type' => 'textfield', 'value' => '', 'heading' => esc_html__( 'Service Number', 'elem' ), 'param_name' => 'ser_number', ), array( 'type' => 'textfield', 'value' => '', 'heading' => esc_html__( 'Service Title', 'elem' ), 'param_name' => 'ser_title', ), array( 'type' => 'textarea', 'value' => '', 'heading' => esc_html__( 'Service Description', 'elem' ), 'param_name' => 'ser_desc', ), ) ), ); /* * Params */$params = array( "name" => esc_html__( "Services", 'elem' ), "description" => esc_html__( "Display Services.", 'elem' ), "base" => 'service', "class" => "service_wrapper", "controls" => "full", "icon" => "", "show_settings_on_create" => true, "params" => $shortcode_fields, ); vc_map( $params );
In above code $shortcode_fields have “title” and “desc” are one fields and “param_group” have “ser_number”, “ser_title” and “ser_desc” are the repeater fields.
Step 6: Create a frontend layout for the element with the below HTML. Put shortcode function in function.php in your child theme.
/* * Display Service element */add_shortcode( 'service', 'service_shortcode' ); function service_shortcode( $atts, $content = null, $shortcode_handle = '' ) { $default_atts = array( 'title' => 'Our Services', 'desc' => '', 'services' => '', ); $atts = shortcode_atts( $default_atts, $atts ); extract($atts); $services = vc_param_group_parse_atts($atts['services']); ob_start(); ?> <div class="service-section"> <div class="container"> <div class="vc_row"> <div class="service-left vc_col-sm-12"> <div class="service-title-desc"> <h2><?php echo esc_html__( $atts['title'], 'elem' ); ?></h2> <p><?php echo esc_html__( $atts['desc'], 'elem' ); ?></p> </div> </div> <div class="service-right vc_col-sm-12"> <div class="service-wrap"> <?php foreach($services as $service) { ?> <div class="service-one vc_col-sm-6"> <span><?php echo esc_html__( $service['ser_number'], 'elem' ); ?></span> <h4><?php echo esc_html__( $service['ser_title'], 'elem' ); ?></h4> <p><?php echo esc_html__( $service['ser_desc'], 'elem' ); ?></p> </div> <?php } ?> </div> </div> </div> </div> </div> <?php return ob_get_clean(); }
Step 7: Follow the below screenshots to add an element in the backend.
Step 8: Check the front end of the page to display the custom element.
In this article, we have to show Create and Used PIPE in angular
In this article, we have to show Create and Used PIPE in angular
In this article, we have to show Create and Used PIPE in angular