I have visual composer which is packed with total theme. When I put the following grid short code in my page in the editor it works correctly.
[vc_basic_grid post_type=”post_type” max_items=”10″ item=”masonryGrid_SlideFromLeft” grid_id=”vc_gid:1458178666639-80ebf3775500c87d35de078c3422fe96-10″ taxonomies=”555″]
However, when I call the exact same code using do_action it gives the following javascript error. I checked the html output and it is the same using do_action like putting the short code in editor.
Error: Syntax error, unrecognized expression: {‘status’:’Nothing found’}
s
Any help is greatly appreciated.
Well, you can’t output contents directly in your templates by using core shortcodes of VC like that.
1. Problem:
For security, besides nonce, VC uses
page_id
andshortcode_id
to check AJAX request/respond data.The
shortcode_id
is automatically generated by VC, you can not harcode it.For example, this is the shortcode you see on admin editor screen:
[vc_basic_grid post_type="post_type" max_items="10" item="masonryGrid_SlideFromLeft" grid_id="vc_gid:1458178666639-80ebf3775500c87d35de078c3422fe96-10" taxonomies="555"]
Let say the page ID is 4269, this is the generated HTML code on front-end:
Now, if
page_id
andshortcode_id
don’t match each other,{'status':'Nothing found - $shorcode_id'}
will be throw out and no contents will be displayed.You can find out more inside
vc_grid.min.js
file.2. Solution:
First you build a new page and add a grid post on it,
then we get
post meta , and try to build a new one
then update post meta data
now we can by pass VC Ajax security check
in the following code “1513628284966-37b8c3ca-d8ec-1” is VC generated guid
you should change it to yours .
I’ve solved.
I had the same problems, with the Visual Composer Editor offered by WpBakery
https://wpbakery.com/
and after understanding the connection between the IDs of the block, and the ID of the Post, I put more attention to the settings of the Block.
There is infact one field called “Element ID“, and here we have to put our ID of the Post we are editing.
In my case the Block was a block containing some Posts.
After saving, and viewing the page without the Editor, I was finally able to see the block, and not the message
I found a solution to this problem.
I modified the woocommerce category template and linked to the woocommerce_archive_description hook to add additional descriptions from some pages, for this I got their id, and then display the content.
The gallery(media grid) didn’t work because there was a mismatch between the page id and the shortcode id. Therefore, the logical solution was to redefine the global variable $post to the $post of the page from which I get the content.
And it turns out that the post id matches.
After that, don’t forget to return the normal $post value;
By the way – use this option to load custom styles for wpbakery elements.
The whole code
You may also try with do_shortcode(”);
Like
do_shortcode(‘[vc_basic_grid post_type=”post_type” max_items=”10″ item=”masonryGrid_SlideFromLeft” grid_id=”vc_gid:1458178666639-80ebf3775500c87d35de078c3422fe96-10″ taxonomies=”555″]’);
Best Regards,