带有do_action短代码的Visual Composer Grid无法正常工作

Abd*_*lla 7 wordpress wordpress-plugin

我有视觉作曲家,其中包含了全部主题.当我在编辑器的页面中放入以下网格短代码时,它可以正常工作.

[vc_basic_grid post_type ="post_type"max_items ="10"item ="masonryGrid_SlideFromLeft"grid_id ="vc_gid:1458178666639-80ebf3775500c87d35de078c3422fe96-10"taxonomies ="555"]

但是,当我使用do_action调用完全相同的代码时,它会出现以下javascript错误.我检查了html输出,使用do_action就像将短代码放在编辑器中一样.

错误:语法错误,无法识别的表达式:{'status':'Nothing found'} s

任何帮助是极大的赞赏.

Min*_*Tri 5

好吧,你不能通过使用VC的核心短代码直接在模板中输出内容.

1.问题:

为了安全起见,除了nonce之外,VC还使用page_idshortcode_id检查AJAX请求/响应数据.

shortcode_id会自动生成VC,你不能harcode它.

例如,这是您在管理编辑器屏幕上看到的短代码:

[vc_basic_grid post_type="post_type" max_items="10" item="masonryGrid_SlideFromLeft" grid_id="vc_gid:1458178666639-80ebf3775500c87d35de078c3422fe96-10" taxonomies="555"]

假设页面ID是4269,这是前端生成的HTML代码:

<!-- vc_grid start -->
<div class="vc_grid-container-wrapper vc_clearfix">
    <div class="vc_grid-container vc_clearfix wpb_content_element vc_masonry_grid" data-initial-loading-animation="zoomIn" data-vc-grid-settings="{"page_id":4269,"style":"all-masonry","action":"vc_get_vc_grid_data","shortcode_id":"1458178666639-80ebf3775500c87d35de078c3422fe96-10","tag":"vc_masonry_grid"}" data-vc-request="http://example.com/wp-admin/admin-ajax.php" data-vc-post-id="4269" data-vc-public-nonce="0641473b09">
    </div>
</div>
<!-- vc_grid end -->
Run Code Online (Sandbox Code Playgroud)

现在,如果page_idshortcode_id不相互匹配,{'status':'Nothing found - $shorcode_id'}就会抛出,没有内容将显示.

您可以在vc_grid.min.js文件中找到更多内容.

2.解决方案:

  • 使用VC生成虚假页面,然后将生成的html代码复制到模板文件中.
  • 直接使用VC 创建模板.
  • 使用Shorcode Mapper创建自己的shorcode.