Wordpress 自定义 post_type 存档 url 和默认查询
Wordpress custom post_type archive url and default query
我现在正在使用 wordpress 4.2,并在其上为我自己的网站开发主题。
我在我的主题中定义了许多自定义 post 类型,现在我正在寻找一种方法来为它们制作一些存档页面。
例如,我有一个名为 shop
的 post_type,并为其分配了一个名为 region
的分类法。
我创建了一个模板文件:category-region.php
然后我访问这个模板的永久链接:http://example.com/category/region/
,这个模板被匹配,并用所有指定的商店初始化查询,然后显示它们。
但现在我想制作一个包含所有 post 商店的页面,无论它们分配在哪个区域。
我应该如何命名模板文件以及永久链接呢?
我检查了模板层次结构并找到了下图。
https://developer.wordpress.org/themes/basics/template-hierarchy/
看来archive-$post_type.php
是我想要的
但是指向这个模板的永久链接呢?
您传递给 register_post_type
的参数中的 rewrite
参数决定了您的自定义 post 类型存档的永久链接。
https://codex.wordpress.org/Function_Reference/register_post_type
查看文档中的示例:
$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/
。
在您的情况下,如果您将重写 slug 设置为 shop
(或者如果您没有设置重写 slug,在这种情况下它将默认为您的 CPT slug),URL 对应于您的 archive-shop.php
模板将是 example.com/shop/
.
请注意,这假设您正在使用永久链接,如果您没有使用永久链接,商店 post 类型的存档位于 example.com/?post_type=shop
。如果您使用永久链接,请确保在设置 CPT 后访问 Settings > Permalinks
页面刷新它们。
我现在正在使用 wordpress 4.2,并在其上为我自己的网站开发主题。
我在我的主题中定义了许多自定义 post 类型,现在我正在寻找一种方法来为它们制作一些存档页面。
例如,我有一个名为 shop
的 post_type,并为其分配了一个名为 region
的分类法。
我创建了一个模板文件:category-region.php
然后我访问这个模板的永久链接:http://example.com/category/region/
,这个模板被匹配,并用所有指定的商店初始化查询,然后显示它们。
但现在我想制作一个包含所有 post 商店的页面,无论它们分配在哪个区域。
我应该如何命名模板文件以及永久链接呢?
我检查了模板层次结构并找到了下图。
https://developer.wordpress.org/themes/basics/template-hierarchy/
看来archive-$post_type.php
是我想要的
但是指向这个模板的永久链接呢?
您传递给 register_post_type
的参数中的 rewrite
参数决定了您的自定义 post 类型存档的永久链接。
https://codex.wordpress.org/Function_Reference/register_post_type
查看文档中的示例:
$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/
。
在您的情况下,如果您将重写 slug 设置为 shop
(或者如果您没有设置重写 slug,在这种情况下它将默认为您的 CPT slug),URL 对应于您的 archive-shop.php
模板将是 example.com/shop/
.
请注意,这假设您正在使用永久链接,如果您没有使用永久链接,商店 post 类型的存档位于 example.com/?post_type=shop
。如果您使用永久链接,请确保在设置 CPT 后访问 Settings > Permalinks
页面刷新它们。