自定义POST类型不使用自己的Single-postname.php

时间:2012-11-04 作者:andy

我有一个自定义帖子类型(我在模板页面上使用),自定义帖子类型称为“headerhome”。当我在那里发布一个画廊的帖子时,我试图让它重定向到“单人头家庭”。php”,但它总是转到“单一”。php’。

自定义帖子类型本身的名称是任意的,它所在的模板页面的名称是“front page”。php’。

我真的很困惑,我在WP方面还不是最好的,所以当像这样简单的东西不起作用时,我不知道如何修复它,即使在翻了一个小时的抄本之后。

// Add new post type for homepage
add_action(\'init\', \'frontpage_top_init\');
function frontpage_top_init() 
{
    $args = array(
        \'label\' => __(\'Homepage\'),
        \'singular_label\' => __(\'Homepage\'),
        \'public\' => true,
        \'publicly_queryable\' => true,
        \'show_ui\' => true, 
        \'query_var\' => true,
        \'rewrite\' => true,
        \'capability_type\' => \'post\',
        \'hierarchical\' => false,
        \'menu_position\' => 5,
        \'supports\' => array(\'title\',\'editor\'),
        \'has_archive\' => true
    ); 
    register_post_type(\'headerhome\',$args);

}
这是我在头版上的代码。php

编辑:-

<?php 
/*
    Template Name: frontpage
*/
?>
<?php get_header(); ?>
<div id="main-content">
<div class="head-home">
      <?php
$portfolio_query = new WP_Query(array(
        \'post_type\' => \'headerhome\',
        \'showposts\' => 1
        ) );
?>
      <?php while ($portfolio_query->have_posts()) : $portfolio_query->the_post(); ?>

       <h2><?php the_title(); ?></h2>  
      <?php the_content(); ?>

  <div style="clear:both"></div>

  <div class="embed-container">
      <?php the_field(\'showreel\'); ?>

  </div> <!-- end div embed-container -->   

    </div> <!-- end div head-home -->               

    <div class="gallerydescription">
        <?php the_field (\'gallery-description\'); ?>
    </div> <!-- end div gallerydescription -->  

<?php the_field(\'image-1\'); ?>
<div style="clear:both;"></div>

<?php endwhile; wp_reset_postdata();?>

</div> <!-- end div main-content -->

<?php get_footer(); ?>
无论我尝试什么,它总是使用单。php而非单头天线盒。php。如果我对wordpress的理解是正确的,那么它可能不应该创建模板文件single headerhome。php自动让wordpress将其用于此帖子类型?

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

你冲洗过你的永久性皮肤吗?

如果没有,请访问仪表板中的permalinks页面,然后刷新您试图查看的页面。

如果有帮助,请告诉我们。

编辑:

在重读您的问题时,事实上,没有-只是因为您创建了一个单post\\u类型。php文件并不意味着WordPress将在您的首页上使用该文件。php模板文件。

你的头版。php文件是呈现帖子的内容。这是你的问题。

如果您想使用single-post\\u类型。php文件,用于在首页中显示帖子类型。php然后您可以执行以下操作:;

<?php
$portfolio_query = new WP_Query(array(
\'post_type\' => \'headerhome\',
\'showposts\' => 1
));
?>

<?php while ($portfolio_query->have_posts()) : $portfolio_query->the_post(); ?>

<?php get_template_part(\'single-post_type.php\'); ?>
   
<?php endwhile; wp_reset_postdata();?>
但显然要确保single-post\\u类型。php本身不包含循环/查询,如果包含循环/查询,则应删除首页中包含的外部while/endwhile语句。php

结束

相关推荐