Use setup_postdata() to make the ‘current post’ any given post, then retrieve the template part before resetting post data back to the original post. Any template tags that depend on the current post in The Loop that are in the template part will refer to the post you have set up with that function.
function wpse_302305_shortcode( $atts ) {
global $post;
$atts = shortcode_atts( ['id' => 0], $atts );
$post = get_post( $atts['id'] );
ob_start();
if ( $post ) {
setup_postdata( $post );
get_template_part( 'path/to/template' );
wp_reset_postdata();
}
return ob_get_clean();
}
add_shortcode( 'template', 'wpse_302305_shortcode' );
Related Posts:
- Is there any way to use get_template_part() with folders?
- Is it possible to override the result of get_template_part()?
- Get template part vs locate template function
- Templates & CSS – Proper Programming Practice?
- TwentyTen: Overloading template.php files vs. get_template_part
- Passing variables to template parts
- How to move style from template file to section?
- Unable to include a template
- Where is the template for the ‘standard’ format of a post in the theme twentythirteen?
- Valid HTML in Template Part
- Remove portion of header code from home page only
- Use a separate template for the home page only
- How to create new template page and template-parts in wordpress theme [closed]
- Including template pages within another template?
- Organize template parts and page templates in folders in regards of template hierarchy
- How to get all template files used for rendering a single post/page?
- get_template_part for template in subdirectory not working
- Display a custom 404 page without a redirect
- When to use content-pagename.php?
- Is it possible to call a template file inside wysiwyg editor? And how?
- WordPress “Blog” template hierarchy
- Adding Page Attributes Metabox and Page Templates to the Posts Edit Page?
- Is there a way to list all used/unused WP templates?
- Print WordPress template filename(s) for debugging
- How to add custom content template part for a custom post type on main query using a plugin
- Change the name of the ‘Default Template’
- Echoing Elementor page content in template, but it doesn’t get styles and some widgets are missing
- How can I modify the default reset (lost) password email text?
- Template files missing after moving site
- Grid layout “last” class to every third item
- How do you modify Page Template?
- Using “setup_postdata” with “get_template_part” does not work
- How can I get the content of the home page?
- Why aren’t my posts showing?
- How to display error on specific template?
- What is content.php file that is needed for Jetpack infinite scroll plugin?
- Auto-Generate Longtail-SEO Pages/URLs
- bloginfo(‘template_directory’) img src
- Should template files be copied to the child theme for editing?
- Calling an image within the theme folder from inside a post/page?
- Best Constant to use to check if WordPress is running
- WordPress automatically created files like .theme-name / .plugin-name.php [closed]
- style sheet header on Page Templates
- Why does the Full-width Template in Twenty Twelve pack so many classes into the body class attribute?
- How to support custom templates on a custom post type?
- How to use $wpdb (from the template) to update the DB, without being an admin
- Page attributes missing
- Different Template based on HTTP Referer
- Where is Number of Posts Set?
- How can I force URL of a custom post type archive to use a page template?
- Possible to have one template call different sidebars for different pages?
- What is the most efficient way to create multiple versions of the same template?
- Are there any downsides to not using get_header(), get_sidebar and get_footer()?
- How do I get the page template name chosen?
- How can I add text to a specific ‘Edit Page’?
- Automatically use specific template to load subpages
- Can’t split the_title() by white space
- Not so common HTML transition to wordpress issue
- Differentiation between index.php and page.php
- Undefined get_header function
- Single-page.php template file name not shown
- WordPress custom template not showing in the list of available templates
- How to display custom post type?
- Pagination issue with tag.php
- How are the HTML classes generated?
- Page Template with Sidebar Naming Convention?
- Adding text to the footer of each post based on tags or categories
- Blog page won’t show Blog template
- How can I abstract code out of a template by using functions.php
- Make Permalink go to specific template
- WordPress function.php on ZendFramework CMS
- Site Title appearing twice on live site
- Give user option to select full post index page or excerpted index?
- how to change already posted blog to custom template wordpress?
- WordPress change title with custom dynamic
- template with multiple post loops for multiple widgets [duplicate]
- Random home page at each refresh between array of page IDs
- Do not trigger page 404 on custom template
- Print different parts of content in template
- How can I pass a variable from a template to header.php of a theme
- Page Template Selector Error
- Change Page Template Based on URL Rewrite in WordPress
- Which template(s) to override to use a different sidebar for blog, single posts, categories, blog archive?
- how to insert gravity newsletter subscription form in template
- how to change custom post type search template to output search results in posttype-archive.php
- How can I modify this code to include the parent?
- why get_header doesn’t work twice in a test
- Is this the best way to complete disable category archive pages?
- query_post while (have post) get_template_part()?
- Search results in custom template
- How can I setup custom templates for a meta-data query
- Move Index to a page
- Problem with custom page template and permalink
- Index template and Home page
- Taxonomy template for all taxonomies attached to certain post type
- How to display page content and a list of posts on the same page?
- Force template on page load
- Make a PHP file with a function
- Post archive is not using the assigned template
- Category theme template becomes default template for child theme