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

时间:2014-09-03 21:32:12

标签: php css wordpress

  • 使用子主题进行基本的wordpress安装。
  • 拥有常规"博客"以及"投资组合"发布类型
  • 博客的2个循环文件​​ loop-single.php ,投资组合的 loop-portfolio.php
  • 我的投资组合页面总是显示为没有样式:http://www.longevitygraphics.com/new/portfolio/dog-patch/
  • 两个"循环"在代码中是相同的(除了我删除了" next"和"以前"投资组合中的链接)。所以我可以告诉它拿起文件,因为我没有看到下一个/上一个导航,但我不确定为什么页面看起来似乎没有样式。

我尝试了以下三件事:


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(); ?>

2 个答案:

答案 0 :(得分:1)

要包含循环模板,您将使用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();

答案 1 :(得分:1)

因此,我没有尝试将脚本定向到single.php中的循环,而是最终为我的投资组合自定义帖子类型创建了一个单独的single.php文件。

最终结果

  • single.php中
  • 单portfolio.php
  • 环的single.php
  • 环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(); ?>

<强>单portfolio.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(); ?>