1 post, 2 templates

时间:2013-01-18 作者:flintsburg

我想能够呈现两种不同的风格(2个模板)后。

例如,假设我有post ID 133,我希望有两个url来访问它,因此它会呈现不同模板应用的位置。

洛雷姆。com/render1/133。com/render2/1333,例如。。。或者可能是这样的:

洛雷姆。com/post/133和lorem。com/post/133?模板=2您将如何操作?

2 个回复
最合适的回答,由SO网友:diggy 整理而成

你最好的选择可能是Rewrite Endpoints API. API允许您使用端点创建post URL,如lorem.com/post/133/json/lorem.com/post/133/print/. 您将在提供的链接中找到有用的代码示例。

SO网友:Chip Bennett

如果添加查询参数,请通过add_query_arg(), 然后,您可以通过get_query_var(), 在一个连接到template_redirect.

(注意:如何/为什么添加查询参数超出了此答案的范围。)

例如:

function wpse82168_template_redirect() {
    // You\'ll need to update these conditionals according to your context
    if ( is_single() && get_query_var( \'template\' ) && \'2\' == get_query_var( \'template\' ) ) {
        get_template_part( \'template-2\' );
    }
}
add_action( \'template_redirect\', \'wpse82168_template_redirect\' );

结束

相关推荐

_Single不会调用我的函数吗?

您好,我正在使用此代码为单个帖子类型调用不同的样式表,但问题是,它不会调用样式表。它在标题中。php,我还尝试将其放置在single中。php<?php if ( ! is_home() ) { if ( is_single() == \'pretty-little-liars\' ) { echo \'<link rel=\"stylesheet\" href=\"http://www.tv-cafe.com/wp-content/themes/t