Shortcode中的Wordpress Visual Composer不会承认自定义CSS

时间:2016-05-19 14:14:30

标签: wordpress visual-composer

我正在使用内容块插件,它允许我经常使用内容作为短代码。短代码内容块的内容编辑器使用Visual Composer。当我在页面上为块使用创建的短代码时,除了在可视化编辑器短代码中定义的任何自定义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 个答案:

答案 0 :(得分:2)

我使用parseShortcodeCustomCss类的visual_composer方法解决了这个问题,它是Visual 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 );

答案 1 :(得分:0)

您可以尝试以下代码:

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

它对我有用