只能通过URL应用的单个模板

时间:2018-07-02 作者:Trisha

我们想测试不同的登录页,以仅显示特定自定义帖子类型的内容元数据的某些部分,因此我需要创建仅在单击特制URL时使用的模板,这些模板将不会链接到网站的任何位置。

我不想更改加载单个页面(当前各种single-cpt.php模板)的默认WP行为,因为我们希望站点上单击各种链接的任何人的所有当前行为保持不变-新的登录页将链接到其他站点,因此如果站点访问者单击其中一个非站点链接,我希望能够为他们提供使用特定(单个)模板文件的内容。

理论上,我可以为这些登录页创建新帖子,但这意味着如果内容现在发生变化,我将有两篇帖子需要更新,否则可能会显示不正确的内容,因此我希望通过使用普通模板和新的“登录”模板调用的相同内容来避免这种情况。

我已经做了很多研究,研究了如何使用各种模板来定制帖子类型和分类法,以及添加另一个术语的想法(这个特定的CPT有一个自定义分类法,还设置了许多使用中的术语),并且可以获得一个可以使用的自定义分类法存档样式模板,但没有一个模板可以在不干扰正常行为的情况下使用。

我愿意接受任何/所有建议!

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

您可以向URL添加查询字符串,并使用$_GET 全球的

例如,您可以添加?template=main 到您帖子的URL。然后,在单个cpt中。php对于您的CPT,请使用

<?php if ( isset( $_GET[\'template\'] ) ) $mytemplate = $_GET[\'template\']; ?>

然后,在要以不同方式显示的位周围,只需添加

switch ( $mytemplate ):
    case "main":
        //code;
        break;
    case "somethingelse":
        //code;
        break;
    default:
        //code;
endswitch;
哦,要首先将查询字符串添加到URL,请使用:

$url = add_query_arg( \'template\', \'main\', $permalinktopost );

希望有帮助

结束