我有(目前)3种自定义帖子类型,我需要使用自定义查询在我的站点主页上显示。每个定制的post类型都有不同的布局(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!' } ?>
我已经创建了几个测试帖子,但是主页上除了‘你好!’什么也没有出现。
首先,我在正确的道路上吗?
第二,如果我在正确的路径上,下面的代码是否不正确(这是我的1跨模板)?
发布于 2012-02-09 19:51:03
这个问题有几个令人困惑的地方,即主页通常是为一个帖子流保留的(在那里,您可以在同一布局中触发4个帖子,但不一定都是相同的post类型),或者是静态的post /页面,这样的检查将毫无意义。
不过,我认为最好还是从模板层次的角度考虑,而不是通过函数检查post类型。同样,创建由WordPress自动加载的实际文件,而不需要额外的代码。
例如,将以下文件放在模板的根目录中:single-one_column.php、single-two_column.php、single-four_column.php,每个文件包含或请求您试图包含的文件中的代码,而WordPress将在每次用户请求该特定post类型的帖子时加载它们。
但是,由于您试图一次加载多个帖子,您可能需要存档模板,这些模板也可用于post类型。它的工作方式是相同的,即archive-one_column.php、archive-two_column.php和archive-four_column.php,在这里,当用户访问yoursite.com/one_column时(假设您有相当多的permalinks),您将能够控制显示的帖子数量和布局等等。
如果您确实需要在该页面中发生所有事情,请记住,没有任何参数的get_post_type()函数需要在循环中发生才能工作。很难说,没有看到完整的页面,但问题可能是,您试图加载您的自定义模板(其中您有您的自定义循环)的信息,但WP尚未处理。
但是,如果要有专门请求一种post类型的查询,那么首先为什么需要使用get_post_type()呢?
https://wordpress.stackexchange.com/questions/41804
复制相似问题