具有自定义模板的索引页面上的多种自定义帖子类型

时间:2012-02-09 作者:Justice Is Cheap

我(目前)有3种自定义帖子类型,我需要使用自定义查询将其显示在网站主页上。每个自定义帖子类型都有不同的布局(1个帖子、2个帖子和4个帖子)。我想做的是为每个布局调用不同的模板。

我已经在这方面工作了将近一个月了,还没弄明白。任何帮助都将不胜感激。

我正在使用以下代码,但它不起作用:

<?php if ( \'one_column\' == get_post_type() ) { include \'inc-onecolumn.php\'; } elseif ( \'two_column\' == get_post_type() ) { include \'inc-twocolumn.php\'; } elseif ( \'four_column\' == get_post_type() ) { include \'inc-fourcolumn.php\'; } else { echo \'Hello!\' } ?>

我已经创建了几个测试帖子,但除了“Hello!”之外,主页上什么都没有显示。

首先,我走对了吗?

第二,如果我走的是正确的道路,那么下面的代码是不是不正确(这是我的跨1的模板)?

模板代码:http://pastebin.com/5iGiRFPF

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

这个问题有几个令人困惑的地方,即主页通常是为一个帖子流保留的(在这个页面中,您可以在一次触发一个跨版面的4篇帖子,不一定所有帖子都是相同的帖子类型),或者是一个静态的帖子/页面,这样的检查是没有意义的。

尽管如此,我认为你最好考虑一下Template Hierarchy, 而不是通过函数检查post类型。如中所示,创建由WordPress自动加载的实际文件,无需额外代码。

例如,将以下文件放在模板的根目录中:single-one_column.php, single-two_column.php, single-four_column.php, 它们中的每一个都包含或请求您试图包含的文件中的代码,WordPress将在用户每次请求该特定帖子类型的帖子时加载它们。

但由于您试图一次加载多篇文章,可能需要存档模板,这些模板也可用于文章类型。它以同样的方式工作,即。archive-one_column.php, archive-two_column.phparchive-four_column.php, 当用户访问时(假设你有很多永久链接),你可以控制显示的帖子数量和布局yoursite.com/one_column, 等

如果你do 需要在这一页中执行所有操作,请记住,没有任何参数的get\\u post\\u type()函数需要在循环中执行才能工作。很难说看不到完整的页面,但问题可能是您试图根据WP尚未处理的信息加载自定义模板(其中有自定义循环)。

但是,如果要有专门要求一种post类型的查询,为什么首先需要使用get\\u post\\u type()?

结束

相关推荐