Search code examples
wordpressvisual-composer

WP Bakery custom template variable not working


I'm trying to add in grid builder a custom shortcode. The shortcode is working as expected but the printed value is empty.

add_filter( 'vc_grid_item_shortcodes', 'my_module_add_grid_shortcodes' );
function my_module_add_grid_shortcodes( $shortcodes ) {
   $shortcodes['vc_custom_post_press_link'] = array(
      'name' => __( 'Press link', 'domain' ),
      'base' => 'vc_custom_post_press_link',
      'category' => __( 'Content', 'my-text-domain' ),
      'description' => __( 'Show custom post meta', 'my-text-domain' ),
      'post_type' => Vc_Grid_Item_Editor::postType(),
   );

   return $shortcodes;
}

// output function
add_shortcode( 'vc_custom_post_press_link', 'vc_custom_post_press_link_render' );
function vc_custom_post_press_link_render($atts, $content, $tag) {
   return 'test1 {{ press_link }}';
}

add_filter( 'vc_gitem_template_attribute_press_link', 'vc_gitem_template_attribute_press_link ', 10, 2 );
function vc_gitem_template_attribute_press_link( $value, $data ) {
   return 'test2';
}

The expected output should be

test1 test2

but i only get

test1

The original code came from the official doc but it doesn't seem to work.

EDIT: I just tried and the code in the documentation dont work too. I guess its not updated. I need a way to get the value of an ACF field and append some HTML around it.


Solution

  • Solved! The problem was in this line

    add_filter( 'vc_gitem_template_attribute_press_link', 'vc_gitem_template_attribute_press_link ', 10, 2 );
    

    that should have been

    add_filter( 'vc_gitem_template_attribute_press_link', 'vc_gitem_template_attribute_press_link', 10, 2 );
    

    Notice the missing space at the end of vc_gitem_template_attribute_press_link.