试图创建第二个loop-single.php来显示不同的帖子


Trying to create a second loop-single.php to display different posts

  • 基本wordpress安装,使用子主题
  • 有一个定期的"博客",也有一个"投资组合"的帖子类型
  • 2个循环文件loop-single.php用于博客,loop-portfolio.php用于公文包
  • 我的公文包页面总是显示为没有样式:http://www.longevitygraphics.com/new/portfolio/dog-patch/
  • 两个"循环"在代码上是相同的(除了我删除了公文包中的"下一个"answers"上一个"链接)。因此,我可以判断它正在拾取文件,因为我看不到下一个/上一个导航,但我不确定为什么页面似乎没有样式

我尝试了以下三件事,但都没有成功:


if(is_post_type_archive('portfolio')){
    include(TEMPLATEPATH . '/loop-portfolio.php');
}else{
    include(TEMPLATEPATH . '/loop-single.php');
}

if(is_post_type_archive('portfolio')){
    include(STYLESHEETPATH . '/loop-portfolio.php');
}else{
    include(STYLESHEETPATH . '/loop-single.php');
}

if(is_post_type_archive('portfolio')){
    include(get_stylesheet_directory_uri() . '/loop-portfolio.php');
}else{
    include(get_stylesheet_directory_uri() . '/loop-single.php');
}

澄清一下,这是我的整个循环。。。我没有错过对get_header()get_footer()的呼叫,但由于某种原因,它没有接听:

<?php get_header(); ?>
<div id="container">
    <div id="content" role="main">
        <?php
            if(is_post_type_archive('portfolio')){
                include(TEMPLATEPATH . '/loop-portfolio.php');
            }else{
                include(TEMPLATEPATH . '/loop-single.php');
            }
        ?>
    </div><!-- #content -->
</div><!-- #container -->
<?php get_sidebar(); ?>
<?php get_footer(); ?>

要包含循环模板,可以使用get_template_part()函数,然后可以指定新的循环类型作为第二个参数。如前所述,您的归档模板中也缺少对get_header()get_footer()的调用。

// Show site header
get_header();
echo '<div id="content">';
// choose the type
$loop_type = is_post_type_archive( 'portfolio' )? 'portfolio' : 'single';
// load the template part
get_template_part( 'loop', $loop_type )
echo '</div><!--content end-->';
// Show site footer
get_footer();

因此,我没有试图将脚本引导到single.php中的循环,而是为我的公文包自定义帖子类型制作了一个单独的single.php文件。

最终结果

  • single.php
  • 单投资组合.php
  • loop-single.php
  • loop-portfolio.php

single.php

<?php get_header(); ?>
    <div id="container">
        <div id="content" role="main">
        <?php get_template_part( 'loop', 'single' ); ?>
        </div><!-- #content -->
    </div><!-- #container -->
<?php get_sidebar(); ?>
<?php get_footer(); ?>

单一投资组合.php

<?php get_header(); ?>
    <div id="container">
        <div id="content" role="main">
        <?php get_template_part( 'loop', 'portfolio' ); ?>
        </div><!-- #content -->
    </div><!-- #container -->
<?php get_sidebar(); ?>
<?php get_footer(); ?>