Php Wordpress自定义post_类型存档url和默认查询

Php Wordpress自定义post_类型存档url和默认查询,php,wordpress,templates,themes,custom-post-type,Php,Wordpress,Templates,Themes,Custom Post Type,我现在正在使用WordPress4.2,并为我自己的网站开发主题 我在我的主题中定义了许多自定义帖子类型,现在我正在寻找一种方法为它们制作一些归档页面 例如,我有一个名为shop的post_类型,并为其分配了一个名为region的分类法 我创建了一个模板文件:category region.php 然后我访问这个模板的永久链接:http://example.com/category/region/,此模板已匹配,并初始化所有指定店铺的查询,然后显示它们 但是现在我想做一个包含商店所有帖子的页面

我现在正在使用WordPress4.2,并为我自己的网站开发主题

我在我的主题中定义了许多自定义帖子类型,现在我正在寻找一种方法为它们制作一些归档页面


例如,我有一个名为
shop
的post_类型,并为其分配了一个名为
region
的分类法

我创建了一个模板文件:
category region.php

然后我访问这个模板的永久链接:
http://example.com/category/region/
,此模板已匹配,并初始化所有指定店铺的查询,然后显示它们

但是现在我想做一个包含商店所有帖子的页面,不管它们被分配到哪个地区

我应该如何命名模板文件,permalink呢


我检查了模板层次结构,找到了下图

似乎
archive-$post_type.php
就是我想要的


但是指向此模板的永久链接呢?

传递给
register\u post\u type
的参数中的
rewrite
参数确定自定义post类型存档的永久链接

查看文档中的示例:

$args = array(
    'labels'             => $labels,
    'public'             => true,
    'publicly_queryable' => true,
    'show_ui'            => true,
    'show_in_menu'       => true,
    'query_var'          => true,
    'rewrite'            => array( 'slug' => 'book' ),
    'capability_type'    => 'post',
    'has_archive'        => true,
    'hierarchical'       => false,
    'menu_position'      => null,
    'supports'           => array( 'title', 'editor', 'author', 'thumbnail', 'excerpt', 'comments' )
);

register_post_type( 'book', $args );
您可以看到,图书CPT的重写slug是
book
,因此图书归档的URL应该是
example.com/book/

在您的情况下,如果您将重写段塞设置为
shop
(或者如果您没有设置重写段塞,在这种情况下它将默认为您的CPT段塞),那么与
存档shop.php
模板对应的URL将是
example.com/shop/


请注意,这假设您正在使用permalinks,如果您没有使用permalinks,则商店帖子类型存档位于
example.com/?post\u type=shop
。如果您正在使用permalink,请确保在设置CPT后通过访问
设置>Permalinks
页面刷新它们。

区域是自定义分类法还是仅仅是一个类别术语
category region.php
应该是
region
类别的模板文件。@mtinsley是的,分类法。请参阅此问题:不完全正确。此设置不符合我的要求。最后我发现结果是
/?post_type=shop
。您的解决方案没有指出这一点,但显示了有用的信息,谢谢!我的解决方案是假设您正在使用permalinks。使用permalinks时,
example.com/shop/
被映射到
example.com/?post\u type=shop
哦,我明白了!非常感谢。我试过了,但失败了。现在我发现是因为我忘了刷新
.htaccess
文件。您的解决方案非常完美!