Single-type.php不起作用,正在传递404

时间:2010-11-11 作者:Sampson

我已经创建了一个自定义帖子类型,并成功添加了一些条目。我可以用query_posts() 出现在头版,但是the_permalink() 在每一个页面上,都会将我发送到“未找到页面”404。

我错过了什么?我当前正在运行http://localhost, 因此the_permalink() 从首页自定义帖子类型循环将用户发送到http://localhost/PU/PU2010/website/cartoons/einstein-on-california.

功能。php

function createCartoonPostType() {
    register_post_type( \'cartoon\', array(
        \'label\' => \'Cartoon\',
        \'public\' => true,
        \'hierarchical\' => true,
        \'supports\' => array( \'title\', \'editor\', \'thumbnail\', \'comments\' ),
        \'rewrite\' => array( \'slug\' => \'cartoons\' )
    ) );
}
add_action( \'init\', \'createCartoonPostType\' );
根据这个,我应该能够single-cartoon.php, 对的

单幅卡通。php

<?php get_header(); ?>

    <div class="container_20">
        <div class="grid_14">
            <div class="bodybox">
                <?php if ( have_posts() ) while ( have_posts() ) : the_post(); ?>

                    <?php the_title(); ?>

                <?php endwhile; ?>
            </div>
        </div>
        <div class="grid_6">
            <?php get_template_part( \'social\', \'box\' ); ?>
            <?php get_sidebar(); ?>
        </div>
        <div class="clear"></div>
    </div>

<?php get_footer(); ?>
循环播放动画片。php(frontpage循环)
<?php query_posts( \'post_type=cartoon&posts_per_page=1\' ); ?>
<div class="cartoons-box">
    <ul class="cartoons-list">
    <?php if ( ! have_posts() ) : ?>
        Sorry, no posts.
    <?php else : while ( have_posts() ) : the_post(); ?>
        <li>
             <a href="<?php the_permalink(); ?>" class="preview-image">
                   <?php the_post_thumbnail( \'featured\' ); ?>
                 </a>
        </li>
    <?php endwhile; endif; ?>
        <div class="clear"></div>
    </ul>
</div>
<?php wp_reset_query(); ?>

3 个回复
最合适的回答,由SO网友:John P Bloch 整理而成

设置帖子类型后,是否转到“管理”->“设置”->“永久链接”?在完成之前,permalink结构尚未添加。这可能是你的问题所在。

永久链接页面激发$wp_rewrite->flush_rules(); 每次访问页面时,甚至不需要保存。

SO网友:hakre

注册自定义帖子类型后,需要重建永久链接。您可以通过访问Admin->Settings->Permalinks(正如John评论的那样)手动完成这一操作,您可以通过调用$wp_rewrite->flush_rules(); 或者如果你懒惰,你可以利用Permafrost (Wordpress Plugin).

SO网友:parkersweb

我也遇到了同样的问题,每次我添加新页面时,都需要重置permalinks结构。添加此项:

flush_rewrite_rules();
在createCartoonPostType()函数中,register\\u post\\u type部分立即解决了这个问题,这意味着不需要使用keep reseting permalinks。

结束

相关推荐