Как разрешить код, такой как PHP, SQL, HTML, в WPBakery Visual Composer?

Вопрос или проблема

Я хочу позволить коду внутри текстовой области писать код с помощью PHP, SQL или HTML…

Что я хочу сделать, так это создать элемент внутри Visual Composer, куда я смогу вставить какой-то код, чтобы показать его так, как я пишу в своих постах.

Здесь вы можете найти типы значений:

https://kb.wpbakery.com/docs/inner-api/vc_map/

Но ни один из этих методов не работает для меня.

Есть ли правильный способ сделать это?

array(
  "type" => "textarea_html",
  "heading" => esc_html__("Текст", "js_composer"),
  "param_name" => "text_code_snippet",
  "admin_label" => true,
  "description" => esc_html__("Текст для вашей кнопки." , "js_composer")
)

Спасибо

Вы не можете писать непосредственно PHP или MySQL в элементе Visual Composer. Вы можете писать только HTML, и у VC есть элемент по умолчанию для этого – “Raw HTML”. Если вы хотите использовать функциональность PHP, вы можете сопоставить ее с шорткодом, а затем разместить шорткод в простом текстовом блоке, или, используя ‘vc_map’, который вы указали, вы можете создать новый настраиваемый элемент, а затем в параметре ‘base’ сопоставить его с шорткодом, который вы создали.

vc_map( array(
'base' => 'svg_icon',
'name' => __( 'Svg Icon', 'ss' ),
'class' => '',
'icon' => 'icon-heart',
'params' => array(
    array(
        'type' => 'textfield',
        'class' => '',
        'heading' => __( 'Id', 'ss' ),
        'param_name' => 'id',
        'value' => 'fb',
    ),
),
) );

function sc_svg_icon($attr) {
$attr = shortcode_atts(array(
  'id' => '',
),$attr);

ob_start(); ?>
  <svg class="icon"><use xlink:href="#<?php echo $attr['id']; ?>" /></svg>
  <?php return ob_get_clean();
}
add_shortcode('svg_icon','sc_svg_icon');

Ответ или решение

Как разрешить использование кода PHP, SQL и HTML в WPBakery Visual Composer

Введение

Вопрос, связанный с разрешением на использование кода, например PHP и SQL, в WPBakery Visual Composer, требует понимания архитектуры WordPress и особенностей работы с визуальными конструкторами. Хотя WPBakery позволяет использовать HTML и некоторые другие форматы, прямое использование PHP и SQL в контенте по умолчанию недоступно. В данной статье мы рассмотрим, как можно реализовать подобный функционал, используя сторонние элементы и шорткоды.

Доступные варианты

  1. HTML через Raw HTML: WPBakery включает элемент для вставки HTML-кода — "Raw HTML". Это позволит вам использовать HTML в контенте, хотя и не позволит вставлять PHP и SQL напрямую.

  2. Использование шорткодов: Для интеграции PHP вам потребуется создать шорткод, который будет обрабатывать необходимый функционал. После этого вы сможете вставить созданный шорткод в визуальный редактор.

Шаги по реализации

1. Создание шорткода

Для начала вам нужно создать шорткод, который будет содержать необходимый вам PHP-код. Пример создания шорткода, выводящего SVG-иконку, будет следующий:

// Добавляем функцию для шорткода
function sc_svg_icon($attr) {
    $attr = shortcode_atts(array(
        'id' => '',
    ), $attr);

    ob_start(); ?>
    <svg class="icon"><use xlink:href="#<?php echo esc_attr($attr['id']); ?>" /></svg>
    <?php
    return ob_get_clean();
}
add_shortcode('svg_icon', 'sc_svg_icon');

В этом примере шорткод svg_icon генерирует SVG-иконку в зависимости от переданного параметра. Вы зарегистрируете этот шорткод в функции вашего плагина или в functions.php вашей темы.

2. Подключение шорткода к Visual Composer

Теперь, когда ваш шорткод готов, вы можете интегрировать его в WPBakery с помощью vc_map. Например:

vc_map( array(
    'base' => 'svg_icon',
    'name' => __( 'SVG Иконка', 'ss' ),
    'class' => '',
    'icon' => 'icon-heart',
    'params' => array(
        array(
            'type' => 'textfield',
            'heading' => __( 'ID', 'ss' ),
            'param_name' => 'id',
            'value' => 'fb',
        ),
    ),
));

Таким образом, вы создадите новый элемент в WPBakery, который позволит пользователям легко добавлять SVG-иконки.

3. Использование SQL

Использование SQL-запросов в стиле WPBakery можно осуществить также через шорткоды. Например, если нужно извлечь данные из базы данных, создайте шорткод, который выполнит SQL-запрос и выведет результат на экран:

function sc_custom_query($atts) {
    global $wpdb;
    $results = $wpdb->get_results("SELECT * FROM your_table_name WHERE condition");

    ob_start();
    foreach ($results as $row) {
        echo '<div>' . esc_html($row->field_name) . '</div>';
    }
    return ob_get_clean();
}
add_shortcode('custom_query', 'sc_custom_query');

Теперь вы можете использовать [custom_query] в Visual Composer.

Заключение

Хотя WPBakery не предоставляет прямой возможности использовать PHP или SQL в текстовых полях или текстовых блоках, создание шорткодов — это универсальное решение для интеграции динамического контента. Вы можете адаптировать свой функционал, создавая мощные и настраиваемые элементы, которые будут легко интегрироваться в визуальный редактор WPBakery. Следуя вышеописанным шагам, вы сможете расширить функционал вашего сайта и обеспечить удобство использования для конечных пользователей.

Оцените материал
Добавить комментарий

Капча загружается...