如何解析返回内容中的快捷码

时间:2015-12-11 作者:Valentin

我使用的是Visual Composer,但我认为它与WordPress的关系比VC更大;-)我使用VC API) 获取帖子的内容。下面是(在functions.php中):

add_filter( \'vc_grid_item_shortcodes\', \'my_module_add_grid_shortcodes\' );
function my_module_add_grid_shortcodes( $shortcodes ) {
    $shortcodes[\'vc_post_id\'] = array(
 \'name\' => __( \'Post content\', \'fluidtopics\' ),
 \'base\' => \'vc_post_content\',
 \'category\' => __( \'Content\', \'fluidtopics\' ),
 \'description\' => __( \'Show current post content\', \'fluidtopics\' ),
 \'post_type\' => Vc_Grid_Item_Editor::postType(),
);

return $shortcodes;
}

add_shortcode( \'vc_post_content\', \'vc_post_content_render\' );
function vc_post_content_render() {
return \'{{ post_data:post_content }}\';
}
内容真正呈现出来了。VC提供的布局也是通过短代码实现的。。。不会与内容一起分析和显示。我想知道是否有可能解析这些短代码?

可在此处查看:https://www.fluidtopics.com/whats-new-2/ (第三个选项卡,您将看到[vc\\U行]等)

非常感谢您的帮助!

2 个回复
SO网友:Valentin

下面是VC团队给出的代码。这是可行的。

// display content in grid
add_filter( \'vc_grid_item_shortcodes\', \'my_module_add_grid_shortcodes\' );
function my_module_add_grid_shortcodes( $shortcodes ) {
$shortcodes[\'vc_post_content\'] = array(
    \'name\' => __( \'Post content\', \'fluidtopics\' ),
    \'base\' => \'vc_post_content\',
    \'category\' => __( \'Content\', \'fluidtopics\' ),
    \'description\' => __( \'Show current post content\', \'fluidtopics\' ),
    \'post_type\' => Vc_Grid_Item_Editor::postType(),
);

return $shortcodes;
}

add_shortcode( \'vc_post_content\', \'vc_post_content_render\' );
function vc_post_content_render() {
return \'{{ do_shortcode_post_content }}\';
}

add_filter( \'vc_gitem_template_attribute_do_shortcode_post_content\', \'vc_gitem_template_attribute_do_shortcode_post_content\', 10, 2 );

function vc_gitem_template_attribute_do_shortcode_post_content( $value, $data ) {
/**
 * @var null|Wp_Post $post ;
 * @var string $data ;
 */
extract( array_merge( array(
    \'post\' => null,
    \'data\' => \'\',
), $data ) );
$atts_extended = array();
parse_str( $data, $atts_extended );

WPBMap::addAllMappedShortcodes();

$output = do_shortcode( $post->post_content );
ob_start();
//  do_action( \'wp_enqueue_scripts\' );
//  wp_print_styles();
//  wp_print_scripts();
//  wp_print_footer_scripts();
$output .= ob_get_clean();

return $output;
}

SO网友:Douglas.Sesar

你可以试试do_shortcode() - Code Reference

add_shortcode( \'vc_post_content\', \'vc_post_content_render\' );
function vc_post_content_render() {
return do_shortcode(\'{{ post_data:post_content }}\');
}
这将过滤掉返回内容中剩余的短代码。

相关推荐

Namespaced shortcode?

我正在改造一个旧的WP站点,该站点有许多自定义的短代码,显然由于代码当前的组织方式,这些短代码在性能方面付出了代价。当然,我可以修复优化不好的代码,使用十几个短代码,并且一天就可以完成,但我想知道如何更好地组织它们。根据WordPress\'documentation, 建议将它们放在插件中并在上初始化init. 我们可以通过这样“命名”它们来减少这个钩子中的负载吗?[com.company shortcode attr=\"attr\" prop=\"prop\"] 有人尝试过这样的解决方案吗