这是一项奇怪的任务,但我确实面对了它。在主页上有显示所有自定义帖子类型的循环。我需要有机会当用户点击cpt链接从主页显示一种类型的单一页面。如果用户从内部页面转到自定义帖子类型,则显示其他单个自定义帖子类型模板。我在stackoverflow但它不能正常工作。stackoverflow中的代码:
在主页上,我添加了如下链接:
<a href="<php the_permalink();?>?template=gallery"> Gallery Page </a>
在自定义post type single page中添加以下代码块:
if($_POST[\'template\'] == \'gallery\') {
get_template_part(\'single\', \'gallery\'); // the file for this one is single-gallery.php
}elseif($_POST[\'template\'] == \'other\'){
get_template_part(\'single\', \'other\'); // the file for this one is single-other.php
}
乍一看,这是有道理的,但它不起作用。请帮助解决此问题。
最合适的回答,由SO网友:Sébastien Serre 整理而成
我想你需要在template_include
钩https://developer.wordpress.org/reference/hooks/template_include
此时,可以添加条件并返回正确的模板路径
add_filter( \'template_include\', \'redirect_single\' );
function redirect_single( $template ){
if($_POST[\'template\'] == \'gallery\') {
$template = path/to/your/template;
}elseif($_POST[\'template\'] == \'other\'){
$template = path/to/your/template;
}
return $template;
}