更改固定链接后忽略自定义帖子模板

时间:2012-11-19 作者:Anton Martin

我已经建立了一个名为推荐的自定义帖子类型的网站,并且正在使用自定义模板来显示帖子编辑:模板名称是页面推荐。php。使用默认的永久链接结构时,一切都正常工作,但是当我将永久链接设置为/%postname%/时,自定义模板将被忽略,帖子将显示在博客存档中。。。。

这是我用来注册帖子类型的代码。我是否遗漏了使其使用定制永久链接的适当模板所需的内容?

add_action( \'init\', \'create_post_type\' );
function create_post_type() {
    register_post_type( \'testimonial\',
        array(
            \'labels\' => array(
                \'name\' => __( \'Testimonials\' ),
                \'singular_name\' => __( \'Testimonial\' ),
                \'add_new_item\' => __(\'Add New Item\'),
                \'edit_item\' => __(\'Edit Item\'),
                \'new_item\' => __(\'New Item\'),
                \'view_item\' => __(\'View Item\'),    \'add_new_item\' => __(\'Add New Item\'),
                \'edit_item\' => __(\'Edit Item\'),
                \'new_item\' => __(\'New Item\'),
                \'view_item\' => __(\'View Item\')
            ),
            \'public\' => true,
            \'has_archive\' => true,
            \'rewrite\' => array(\'slug\' => \'testimonials\',
            \'show_in_nav_menus\' => true,
            \'capability_type\' => \'page\',
            \'hierarchical\' => true,
           \'supports\' => array( \'title\', \'editor\', \'thumbnail\' ),
           \'query_var\' => true)
        )
    );
}

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

自定义帖子类型的层次结构与页面或帖子不同。

他们将使用single-{{post_type}}.php 然后回到single.php. Post-type存档将使用archive-{{post_type}}.php 然后回到archive.php.

您的问题并不十分清楚,但如果您希望自定义帖子类型的单数页面使用page-testimonials.php 模板,重命名为single-testimonials.php.

然而,我怀疑你的意思是page-testimonials.php 正在显示一份推荐信列表。在这种情况下,请将其重命名为archive-testomonials.php 它应该可以正常工作。之前发生的事是你看到了permalinkyoursite.com/?page_id={{some_number}}. 这是可行的--它始终是一个页面,但使用您注册的post类型(使用\'has_archive\' => true) yoursite.com/testimonials 尝试显示自定义post类型存档。

最后一点注意:如果您进行了任何查询修改或二次查询以获取testimonials 在您的page-testimonials.php 模板,你可以移除它们。WordPress将负责确保在archive-{{post_type}}.php 样板

您还应该看看template hierarchy

SO网友:responsivelab

我看到一个错误:

add_action( \'init\', \'create_post_type\' );
function create_post_type() {
    register_post_type( \'testimonial\',
        array(
            \'labels\' => array(
                \'name\' => __( \'Testimonials\' ),
            \'singular_name\' => __( \'Testimonial\' ),
            \'add_new_item\' => __(\'Add New Item\'),
            \'edit_item\' => __(\'Edit Item\'),
            \'new_item\' => __(\'New Item\'),
            \'view_item\' => __(\'View Item\'),    \'add_new_item\' => __(\'Add New Item\'),
            \'edit_item\' => __(\'Edit Item\'),
            \'new_item\' => __(\'New Item\'),
            \'view_item\' => __(\'View Item\')
        ),
        \'public\' => true,
        \'has_archive\' => true,
        \'rewrite\' => array(\'slug\' => \'testimonials\'),  **<---- miss )**
        \'show_in_nav_menus\' => true,
        \'capability_type\' => \'page\',
        \'hierarchical\' => true,
       \'supports\' => array( \'title\', \'editor\', \'thumbnail\' ),
       \'query_var\' => true)
    )
);
}

结束

相关推荐