Visual Composer — это плагин визуального конструктора страниц в wordpress. Это плагин премиум-класса, и теперь почти каждая тема премиум-класса использует его для разработки привлекательных, адаптивных и анимированных страниц. Это сводит к минимуму время разработки и проектирования в WordPress, и мы можем с его помощью создать любой вид страницы. Отзывчивый пользовательский макет, анимированные блоки и css для конкретной страницы — вот некоторые из его функций. он поставляется со многими встроенными надстройками, или вы можете сказать, что доступны визуальные элементы и множество бесплатных и платных плагинов, которые добавляют дополнительные визуальные элементы. Одним из моих любимых является Ultimate addons for visual composer. Аддоны или элементы визуального композитора в основном представляют собой шорткод WordPress, и в этой статье мы создадим простой аддон для наших практик.

Итак, вот код, я прокомментировал код, чтобы вы могли лучше его понять. Также вы можете попробовать это с помощью вашего function.php и создания собственного плагина. Мы собираемся попробовать это, создав собственный плагин.

<?php
/*
* Plugin Name: Visual Composer Simple Addon
* Plugin URI: http://emericov2
* Description: Simple visual composer addon
* Version: 0.1.1
* Author: Udit Rawat
* Author URI: http://emericov2
* License: GPLv2 or later
*/
/**
 * Class Vc_Simple_Addon
 */
class Vc_Simple_Addon extends WPBakeryShortCode
{
    function __construct($settings)
    {
        // parent constructor call with default parameters
        parent::__construct( $settings );
// Implement wordpress hooks for our addon
        add_action('init', [$this, 'vc_simple_addon_init']);
        add_shortcode('vc_infobox', [$this, 'vc_simple_addon_html']);
    }
/**
     * Init and element mapping function
     */
    public function vc_simple_addon_init()
    {
// Return nothing if visual composer is not defined.
        if (!defined('WPB_VC_VERSION')) {
            return;
        }
// map block and field with vc_map function
        vc_map(
            [
                'name' => __('VC Simple Addon', 'emerico'),
                'base' => 'vc_simple_addon',
                'description' => __('Simple addon for vc', 'emerico'),
                'category' => __('Content', 'emerico'),
                "class" => "",
                "controls" => "full",
                'icon' => plugins_url('assets/asterisk_yellow.png', __FILE__),
                //'admin_enqueue_js' => array(plugins_url('assets/vc_simple_addon_admin.js', __FILE__)), // This will load js file in the VC backend editor
                //'admin_enqueue_css' => array(plugins_url('assets/vc_simple_addon_admin.css', __FILE__)), // This will load css file in the VC backend editor
                'params' => [
                    [
                        'type' => 'textfield',
                        'holder' => 'h3',
                        'class' => 'title-class',
                        'heading' => __('Title', 'emerico'),
                        'param_name' => 'title',
                        'value' => __('Default value', 'emerico'),
                        'description' => __('Box Title', 'emerico'),
                        'admin_label' => false,
                        'weight' => 0,
                        'group' => 'Custom Group',
                    ],
                    [
                        'type' => 'textarea',
                        'holder' => 'div',
                        'class' => 'text-class',
                        'heading' => __('Text', 'emerico'),
                        'param_name' => 'text',
                        'value' => __('Default value', 'emerico'),
                        'description' => __('Box Text', 'emerico'),
                        'admin_label' => false,
                        'weight' => 0,
                        'group' => 'Custom Group',
                    ],
                ],
            ]
        );
    }
// ShortCode html function
    public function vc_simple_addon_html($atts)
    {
        // Params extraction
        extract(
            shortcode_atts(
                array(
                    'title' => '',
                    'text' => '',
                ),
                $atts
            )
        );
// build shorcode html
        $html = '
        <div class="vc-simple-addon-wrap">
            <h2 class="vc-simple-addon-title">' . $title . '</h2>
            <div class="vc-simple-addon-text">' . $text . '</div>
        </div>';
return $html;
}
}
new Vc_Simple_Addon(['title'=>'Demo title','text'=>'Demo Text']);