Как переопределить контейнер элемента Fusion в функциях дочерней темы Avada? - PullRequest
0 голосов
/ 16 мая 2019

Привет! Я пытаюсь изменить способ работы контейнера Fusion Builder.Я хочу добавить больше пользовательских полей, изменить отображение HTML и переменные по умолчанию.Мне нужно переопределить /plugin/fusion-builder/shorcode/fusion-container.php

Я использую дочернюю тему avada.Как правильно его переопределить?

1 Ответ

0 голосов
/ 16 мая 2019

Сразу после того, как я опубликовал вопрос, я получил ответ в GitHub: https://github.com/Theme-Fusion/Fusion-Builder-Sample-Add-On/issues/34

Решение состоит в том, чтобы добавить в файл functions.php вашего дочернего шаблона следующий код:

/**
 * Filter already set maps, add in a new option to container.
 */
function filter_available_element( $fusion_builder_elements ) {
    if ( isset( $fusion_builder_elements['fusion_builder_container'] ) ) {
        $fusion_builder_elements['fusion_builder_container']['params'][] = array(
            'type'        => 'radio_button_set',
            'heading'     => esc_attr__( 'Container Design Mode', 'fusion-builder' ),
            'description' => esc_attr__( 'Controls whether the container should be dark or light.', 'fusion-builder' ),
            'param_name'  => 'container_mode',
            'value'       => array(
                'light' => esc_attr__( 'Light', 'fusion-builder' ),
                'dark'  => esc_attr__( 'Dark', 'fusion-builder' ),
            ),
            'default'     => 'light',
            'group'       => esc_attr__( 'Design', 'fusion-builder' ),
        );
    }
    return $fusion_builder_elements;
}
add_filter( 'fusion_builder_all_elements', 'filter_available_element' );

/**
 * Filter the parameters, check for container_mode and if set add to class parameter.
 */
function filter_container_parameters( $out, $pairs, $atts, $shortcode ) {

    // If set, use it, otherwise set to default.
    $out['container_mode'] = isset( $atts['container_mode'] ) ? $atts['container_mode'] : 'light';

    // Set to class parameter which container already has and uses.
    if ( ! isset( $out['class'] ) || '' === $out['class'] ) {
        $out['class'] = 'my-class-' . $out['container_mode'];
    } else {
        $out['class'] .= ' my-class-' . $out['container_mode'];
    }
    return $out;
}
add_filter( 'shortcode_atts_fusion_builder_container', 'filter_container_parameters', 10, 4 );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...