Php Wordpress自定义post_类型存档url和默认查询
我现在正在使用WordPress4.2,并为我自己的网站开发主题 我在我的主题中定义了许多自定义帖子类型,现在我正在寻找一种方法为它们制作一些归档页面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/,此模板已匹配,并初始化所有指定店铺的查询,然后显示它们 但是现在我想做一个包含商店所有帖子的页面
例如,我有一个名为
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
文件。您的解决方案非常完美!