0

我正在使用一个内容块插件,它允许我经常将内容用作简码。短代码内容块的内容编辑器使用 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');
}

有人遇到过这个吗?

谢谢!

​</p>

4

2 回答 2

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 );
于 2016-06-22T13:25:04.637 回答
0

你可以试试这段代码:

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

这个对我有用

于 2017-10-05T13:55:24.850 回答