WP 3.1自定义POST类型永久链接

时间:2011-03-10 作者:server info

我知道有很多关于CPT和permlinks以及404的讨论。虽然我很接近,但我没有找到解决方案。如果有人能帮我把它修好,那就太好了。

我所做的是:

    function post_type_services() 
{    
    register_post_type( \'services\',
                array( 
                \'label\' => __(\'Services\'), 
                \'singular_name\' => __( \'Service\' ),
                \'capability_type\' => \'post\',
                \'rewrite\' => array(\'slug\' => \'service\',\'with_front\' => FALSE),
                \'public\'  => true, 
                \'show_ui\' => true ) );     

    flush_rewrite_rules( false );
    }
add_action(\'init\', \'post_type_services\');
我为服务添加了CPT。我加了一个鼻涕虫flush_rewrite_rules(false) 正如许多博客帖子所建议的那样。

我打开了设置的永久链接/%year%/%monthnum%/%postname% 我添加了一个文件single-services.php 其中包含以下内容

   <?php 
    get_header(); 
?>
<div class="content">
    <div class="content_resize">
        <div class="mainbar">
    <?php query_posts(\'post_type=services\'); ?>
    <?php if ( have_posts() ) while ( have_posts() ) : the_post(); ?>
    <div class="article">
                <h2><?php the_title(); ?></h2>
                <?php the_content(); ?>
                <?php wp_link_pages( array( \'before\' => \'\' . __( \'Pages:\', \'twentyten\' ), \'after\' => \'\' ) ); ?>
                <?php edit_post_link( __( \'Edit\', \'twentyten\' ), \'\', \'\' ); ?>
    </div>
        <?php endwhile; ?>
        </div>
        <div class="sidebar">
            <div class="gadget">
                <h2>Auswahl</h2>
                <div class="clr"></div>
                    <?php wp_nav_menu( array( \'sort_column\' => \'menu_order\', \'menu_class\' => \'sb_menu\', \'theme_location\' => \'leftmain\' ) ); ?>
            </div>
            <?php get_sidebar(); ?> 
        </div>
    </div>
    <div class="clr"></div>
</div>
<div class="fbg">
    <div class="fbg_resize">
            <div class="footer">
                <?php get_footer(); ?>
            </div>
    </div>
</div>
到目前为止还不错。我想要的是。如果我导航到http://www.mydomain.com/service 我想查看我的服务列表,当我单击单个服务时,我想显示单个服务。

我现在得到的是当我导航到http://www.mydomain.com/service. 我有一辆404但是当我去http://www.mydomain.com/service/my-first-service 我看到了服务列表。。。

我做错了什么?访问时如何获取服务列表http://www.mydomain.com/service ?

P、 S:我使用starkers基本模板生成我自己的。。。

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

您需要将以下内容添加到register_post_type() 数组:

\'has_archive\' => \'service\'

结束

相关推荐

curl problem or permalinks

我刚刚配置了我的VPS,我使用的是Centos,一切都很好,但如果我将永久链接设置为自定义结构,然后接受主页,没有帖子出现,它会显示404页,我想这是因为我没有启用curl,但我不知道我的php在哪里。我的centos中的ini文件?好的,我的卷曲被启用了,我检查过了phpinfo(); 这里是URLhttp://74.117.158.182/info.php但如果我在我的wordpress中设置了永久链接,那么接受主页,所有都会给我404页,你可以在这个URL上查看http://mbas.co.in如果