2016-05-19 3 views
0

Я использую плагин блока контента, который позволяет мне часто использовать контент в качестве короткого кода. Редактор содержимого для блоков содержимого короткого кода использует Visual Composer. Когда я использую созданный короткий код для блока на странице, большинство из них прекрасно работает, за исключением любого специального CSS, определенного в коротком коде визуального композитора.Wordpress Visual Composer внутри Shortcode не признает пользовательский CSS

Например:

[vc_column_inner width="1/3" css=".vc_custom_1463660338922{background-image: url(/circlebg.png) !important;}”] 

Пользовательский класс CSS определен в DIV, созданном в фасаде источника, но определение не отображается в заголовке. Это работает, если я делаю этот же процесс на самой странице без использования короткого кода для контента. Я считаю, что это имеет какое-то отношение к functions.php. Я изменил эту функцию к следующему (выделены жирным шрифтом), но до сих пор ничего не признается:

if(!function_exists('qode_visual_composer_custom_shortcodce_css')){ 
function qode_visual_composer_custom_shortcodce_css(){ 
if(qode_visual_composer_installed()){ 

if(is_page() || is_single() || is_singular('portfolio_page') || is_singular('content_block')){ 
$shortcodes_custom_css = get_post_meta(qode_get_page_id(), '_wpb_shortcodes_custom_css', true); 
if (! empty($shortcodes_custom_css)) { 
echo '<style type="text/css" data-type="vc_shortcodes-custom-css-'.qode_get_page_id().'">'; 
echo $shortcodes_custom_css; 
echo '</style>'; 
} 
$post_custom_css = get_post_meta(qode_get_page_id(), '_wpb_post_custom_css', true); 
if (! empty($post_custom_css)) { 
echo '<style type="text/css" data-type="vc_custom-css-'.qode_get_page_id().'">'; 
echo $post_custom_css; 
echo '</style>'; 
} 
} 
} 
} 
add_action('qode_visual_composer_custom_shortcodce_css', 'qode_visual_composer_custom_shortcodce_css'); 
} 

Любой пришел через это раньше?

Спасибо!

ответ

2

Я решил это, используя parseShortcodeCustomCss метод visual_composer класса, это один используется сам Визуальный Composer включить стили в верхний или нижний колонтитул.

Мое решение:

$shortcodeContent = '[vc_column_inner width="1/3" css=".vc_custom_1463660338922{background-image:url(/circlebg.png)!important;}”]'; 
$shortcodes_custom_css = visual_composer()->parseShortcodesCustomCss($shortcodeContent); 
if (! empty($shortcodes_custom_css)) { 
    $shortcodes_custom_css = strip_tags($shortcodes_custom_css); 
    $output .= '<style type="text/css" data-type="vc_shortcodes-custom-css">'; 
    $output .= $shortcodes_custom_css; 
    $output .= '</style>'; 
    echo $output; 
} 
echo apply_filters('the_content', $shortcodeContent); 
0

Вы можете попробовать этот код:

Vc_Manager::getInstance()->vc()->addShortcodesCustomCss($page_id); 
    $the_post = get_post($page_id); 
    echo apply_filters('the_content', $the_post->post_content); 

Это работает для меня

Смежные вопросы