function custom_code(){
return include( get_stylesheet_directory() . '/custom-template.php');
}
add_shortcode('custom_shortcode','custom_code');
As you can check above I want to include a template using shortcode how to make it done?
function custom_code(){
return include( get_stylesheet_directory() . '/custom-template.php');
}
add_shortcode('custom_shortcode','custom_code');
As you can check above I want to include a template using shortcode how to make it done?
Share Improve this question asked Jan 7, 2019 at 9:10 Dharit SoniDharit Soni 1132 silver badges6 bronze badges 1- Please check once gist.github/germanny/9420496 – Pratik Patel Commented Jan 7, 2019 at 9:20
1 Answer
Reset to default 1You can't return the include
statement. And you shouldn't use include
template parts.
And here's how to do it correctly:
function custom_code() {
ob_start();
get_template_part( 'custom-template.php' );
return ob_get_clean();
}
add_shortcode( 'custom_shortcode', 'custom_code' );
So what we're doing here is:
- Start output buffering.
- Include given template part using
get_template_part
function. - Return all the output generated by that template and delete the buffer.