How to change post template

时间:2012-12-16 作者:John

我有一篇帖子介绍了我使用高级自定义字段创建的产品。我想在帖子上有一个链接,在一个新窗口中打开,显示相同的产品,只是外观和信息不同。(注意:我特别希望使用第二个模板,而不是不同的CSS,因为每个模板上会显示不同的信息。)我尝试使用下面的代码,但我的自定义模板只返回一个空白页。有人能提出解决方案吗?

这是我在原始模板上使用的链接。

<a href="<?php the_permalink(); ?>?custom-template=1">Link</a>
下面是我放在自定义模板顶部的代码。

if ($_GET[\'custom-template\'] == 1) { include custom-template.php; return; }
谢谢,约翰

1 个回复
最合适的回答,由SO网友:Brooke. 整理而成

在我看来,您有两种选择:

将id传递给custom template 然后创建一个自定义wp_query 循环和使用$_GET[\'id\'] 作为循环的id

<?php
/*
Template Name: Pop Up View
*/
//get id from your url 
$id=$_GET[\'id\'];

//start custom loop

$query = new WP_Query( \'p=$id\' );
//loop stuff and page template here
?>
然后你会打电话<a href="custom-item-template?id=<?php the_ID();?>">Link</a>

或者更多地使用当前代码,您可以执行以下操作

    if ($_GET[\'custom-template\'] == 1) { 
       get_template_part( \'custom-template\');
      die(); //or exit(); 
}
这修复了我在当前代码中看到的一些问题。一个是return不能在函数之外使用。还使用get_template_part 与其包含,不如使用WordPress。

这两种方法都应该奏效,希望这能让你走上正轨。

结束

相关推荐

Enable page templates. How?

基本问题,但我想启用页面模板。我有一个启用了页面模板的主题。我切换到了另一个模板,但没有更改模板的选项,即使在创建新页面时也是如此。如何打开此选项?我在抄本和论坛上找到了根,但找不到。