是否仅为自定义帖子类型档案使用一个模板?

时间:2014-09-06 作者:David

我当前正在使用archive.php 作为类别、标记、作者等的通用列表,我的自定义帖子类型有一个非常定制的归档页面,与archive.php.

我想知道是否有一种方法可以创建一个归档文件,作为only 我的自定义帖子类型。如果它包含在模板层次结构中,则可能会调用它archive-post-type.phppost-type.php.

我知道我可以使用includes或get_template_part, 但它实际上只是跨多个帖子类型的同一个归档文件,所以我宁愿为所有帖子类型创建一个文件。理想情况下,此CPT存档模板仍可以由archive-$posttype.php.

如果我利用archive.php 相反,对于自定义帖子类型,我会遇到同样的问题,因为category.php, tag.php, date.php, 等等都是相同的模板,但仍然不同于archive.php.

3 个回复
最合适的回答,由SO网友:Brad Dalton 整理而成

add_filter( \'template_include\', \'wpsites_cpt_archive_page_template\', 99 );

function wpsites_cpt_archive_page_template( $template ) {

    if ( is_post_type_archive()  ) {
        $new_template = locate_template( array( \'your-cpt-template.php\' ) );
        if ( \'\' != $new_template ) {
            return $new_template ;
        }
    }

    return $template;
}
在函数文件中尝试此操作。

您可以将您的帖子类型添加到此行,如下所示:

if ( is_post_type_archive(array( first-post-type, second-post-type ) ) ) {
使用is_post_type_archive &;template_include

SO网友:Pieter Goosen

如果我理解正确的话,我认为布拉德的答案指向了正确的方向。

我真的认为您需要重新考虑模板的使用。使用archive.php 作为所有其他归档类型的模板会对一种样式造成很大的限制。创建所有这些归档类型模板更容易,并为更广泛地使用您的内容和样式创造了机会。你可以简单地复制arhive.php 并将其重命名category.php 例如,它就是那么简单。您只需为每种归档类型采用样式

这也为Template Hierarchy. 我不打算深入讨论这个问题,您可以按照提供的链接进行研究:-)

模板层次结构没有为archive.php 模板,您有两个选择,archive.phparchive-{$post_type}.php. 您可以跳出这一步,但随后需要重定向和模板包含(正如Brad指出的那样),这会不必要地阻塞您的函数文件。为什么要使用额外代码?

我真的认为您最好的答案是使用模板层次结构中可用的不同模板。它将节省您编写不必要的代码的时间,当您删除不必要的代码时,它会更快,当涉及到个人样式时,它会给您更多的自由,并且不会太令人困惑。因此,为每种帖子类型创建一个归档模板,保持在模板层次结构中,我敢打赌你会不会有那么多麻烦事

SO网友:Milople Inc

我想您可以制作一个页面模板,并在其中添加以下代码:-

<?php $args = array( \'post_type\' => \'your_custom_post\', \'posts_per_page\' => 10 );
$loop = new WP_Query( $args );
while ( $loop->have_posts() ) : $loop->the_post();
    the_title();
    echo \'<div class="entry-content">\';
    the_content();
    echo \'</div>\';
endwhile; ?>
希望这能帮助你解决问题。

结束

相关推荐

1 post, 2 templates

我想能够呈现两种不同的风格(2个模板)后。例如,假设我有post ID 133,我希望有两个url来访问它,因此它会呈现不同模板应用的位置。洛雷姆。com/render1/133。com/render2/1333,例如。。。或者可能是这样的:洛雷姆。com/post/133和lorem。com/post/133?模板=2您将如何操作?

是否仅为自定义帖子类型档案使用一个模板? - 小码农CODE - 行之有效找到问题解决它

是否仅为自定义帖子类型档案使用一个模板?

时间:2014-09-06 作者:David

我当前正在使用archive.php 作为类别、标记、作者等的通用列表,我的自定义帖子类型有一个非常定制的归档页面,与archive.php.

我想知道是否有一种方法可以创建一个归档文件,作为only 我的自定义帖子类型。如果它包含在模板层次结构中,则可能会调用它archive-post-type.phppost-type.php.

我知道我可以使用includes或get_template_part, 但它实际上只是跨多个帖子类型的同一个归档文件,所以我宁愿为所有帖子类型创建一个文件。理想情况下,此CPT存档模板仍可以由archive-$posttype.php.

如果我利用archive.php 相反,对于自定义帖子类型,我会遇到同样的问题,因为category.php, tag.php, date.php, 等等都是相同的模板,但仍然不同于archive.php.

3 个回复
最合适的回答,由SO网友:Brad Dalton 整理而成

add_filter( \'template_include\', \'wpsites_cpt_archive_page_template\', 99 );

function wpsites_cpt_archive_page_template( $template ) {

    if ( is_post_type_archive()  ) {
        $new_template = locate_template( array( \'your-cpt-template.php\' ) );
        if ( \'\' != $new_template ) {
            return $new_template ;
        }
    }

    return $template;
}
在函数文件中尝试此操作。

您可以将您的帖子类型添加到此行,如下所示:

if ( is_post_type_archive(array( first-post-type, second-post-type ) ) ) {
使用is_post_type_archive &;template_include

SO网友:Pieter Goosen

如果我理解正确的话,我认为布拉德的答案指向了正确的方向。

我真的认为您需要重新考虑模板的使用。使用archive.php 作为所有其他归档类型的模板会对一种样式造成很大的限制。创建所有这些归档类型模板更容易,并为更广泛地使用您的内容和样式创造了机会。你可以简单地复制arhive.php 并将其重命名category.php 例如,它就是那么简单。您只需为每种归档类型采用样式

这也为Template Hierarchy. 我不打算深入讨论这个问题,您可以按照提供的链接进行研究:-)

模板层次结构没有为archive.php 模板,您有两个选择,archive.phparchive-{$post_type}.php. 您可以跳出这一步,但随后需要重定向和模板包含(正如Brad指出的那样),这会不必要地阻塞您的函数文件。为什么要使用额外代码?

我真的认为您最好的答案是使用模板层次结构中可用的不同模板。它将节省您编写不必要的代码的时间,当您删除不必要的代码时,它会更快,当涉及到个人样式时,它会给您更多的自由,并且不会太令人困惑。因此,为每种帖子类型创建一个归档模板,保持在模板层次结构中,我敢打赌你会不会有那么多麻烦事

SO网友:Milople Inc

我想您可以制作一个页面模板,并在其中添加以下代码:-

<?php $args = array( \'post_type\' => \'your_custom_post\', \'posts_per_page\' => 10 );
$loop = new WP_Query( $args );
while ( $loop->have_posts() ) : $loop->the_post();
    the_title();
    echo \'<div class="entry-content">\';
    the_content();
    echo \'</div>\';
endwhile; ?>
希望这能帮助你解决问题。

相关推荐

Custom term templates

所以,我在网上做了一些研究,但没有找到可靠的答案,所以我来了。我需要为特定类别创建自定义woocommerce类别页面。例如,我有一个类别叫做“Awesome”。而不是使用由短代码生成的常规类别页面[product_category category=\"something\"], 我想为自定义特定类别页面Awesome.我发现我需要编辑taxonomy-product_cat.php 但我不知道如何将其链接到名为awesome.换句话说,我正在考虑制作php文件的自定义副本,然后将其添加为主题templ