Вопрос или проблема
Я хочу позволить коду внутри текстовой области писать код с помощью 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 в контенте по умолчанию недоступно. В данной статье мы рассмотрим, как можно реализовать подобный функционал, используя сторонние элементы и шорткоды.
Доступные варианты
-
HTML через Raw HTML: WPBakery включает элемент для вставки HTML-кода — "Raw HTML". Это позволит вам использовать HTML в контенте, хотя и не позволит вставлять PHP и SQL напрямую.
-
Использование шорткодов: Для интеграции 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. Следуя вышеописанным шагам, вы сможете расширить функционал вашего сайта и обеспечить удобство использования для конечных пользователей.