Visual Composer-覆盖类

时间:2018-11-08 10:39:09

标签: php wordpress

我正在使用Visual Composer(WPBakery)在Wordpress网站上工作。

例如,我必须在插件的核心中修改一些类,

我修改了此类: WPBakeryShortCode_VC_Tta_Section

问题是我不得不修改插件核心(shortcodes / vc-tta-section.php)中的功能。

我没有找到任何解决方案来覆盖Visual Composer类。即使我扩展了该类并添加了自己的代码,我也必须调用自己的类,但是在代码中没有找到任何可以帮助我修改基类的内容,将 WPBakeryShortCode_VC_Tta_Section 用作> WPBakeryShortCode_VC_Tta_Section_CUSTOM 。

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

我已经通过这种方式解决了问题

[1] 创建目录-wp-content/my-plugins

[2] 创建文件wp-content/mu-plugins/my-ext-js-composer.php

[3] 然后复制您的简码文件

来自:

wp-content/plugins/js_composer/include/classes/shortcodes/any-shortcode-file-you-want-to-modify.php

wp-content/themes/your-theme/includes/plugins/js-composer/that-file.php

[4] 然后根据需要修改than-file.php

[5] ,然后将此条件添加到您自己的vc_path_dir函数中

[6] 然后复制文件

来自

wp-content/plugins/js_composer/vc_classmap.json.php

收件人

 wp-content/themes/your-theme/configs/plugins/js-composer/vc_classmap.json.php 

[7] 然后输入vc_classmap.json.php(您的主题文件) 用您的简码删除部分。

F (如果您的简码文件)

您要修改的任何短代码文件 vc-tta-section.php

然后删除json文件的一部分:

"wpbakeryshortcode_vc_tta_section":["include\/classes\/shortcodes\/vc-tta-accordion.php","include\/classes\/shortcodes\/vc-tta-section.php"]

那你就可以做到

然后,写到my-ext-js-composer.php

<?php

 function vc_path_dir( $name, $file = '' ) {
    switch ( true ) {
        case ( 'SHORTCODES_DIR' === $name && 'any-shortcode-file-you-want-to-modify.php' === $file ):
            return get_stylesheet_directory() . '/includes/plugins/js-composer/that-file.php';
        case ( 'APP_ROOT' === $name || 'vc_classmap.json.php' === $file ):
            return get_stylesheet_directory() . '/configs/plugins/js-composer/vc_classmap.json.php';

            break;
    }

    return vc_manager()->path( $name, $file );
}

F.e-您可以通过这种方式修改的简码文件列表

vc-section.php
vc-icon.php
vc-button.php

...等等