我有一个名为 cities 的自定义帖子类型。 对于此自定义帖子类型,我将有N个城市相关。
我正在尝试为这些页面创建文件,我认为这样可行:
single.php - 通用
single-cities.php - 列出城市
单城市 - {city-slug} .php - 为城市提供信息
当我尝试:
/ cities - 它显示的是single.php内容,而不是列表中的单个城市内容。
/ cities / sao-paulo - 它正在运作。它显示了有关圣保罗的信息。
的测试:
如果我删除单城市 - {city-slug} .php ,并尝试访问 / cities / sao-paulo ,则会带来单cities.php
我在这个等级制度中做错了什么?
我注册自定义帖子类型的代码:
$city_args = array(
'labels' => $labels,
'public' => true,
'has_archive' => true,
'publicly_queryable' => true,
'query_var' => true,
'capability_type' => 'post',
'hierarchical' => false,
'supports' => array(
'title'
),
'exclude_from_search' => false,
'menu_icon' => 'dashicons-building'
);
register_post_type('cities', $city_args);
谢谢!
更新
我想我误解了单页的概念。 single.php只是为了呈现单个帖子,而不是列出自定义帖子类型的帖子。
阅读更多关于这种层次结构的内容,我试图了解我的城市列表结构,然后将城市信息纳入其中。
也许我应该为城市创建一个页面,然后在这个页面(page-cities.php)中创建代码以带来所有城市。
点击每个城市,它应该转到single.php,是吗??
答案 0 :(得分:2)
您希望archive-cities.php列出所有城市,一个帖子的单个城市。使用此作为参考:https://codex.wordpress.org/Post_Type_Templates
答案 1 :(得分:1)
列出所有帖子的页面称为Archive,它存在于register_post_type参数中声明的slug。
/ cities - 这是您的存档页面,因此会调用 archive-cities.php
/ cities / sao-paulo - 这是一篇文章。它首先会查找单城市 - {city-slug} .php ,然后搜索 single-cities.php 。
在大多数情况下,您只能使用 single-cities- {city-slug} .php 为特定城市制作唯一的模板文件。假设每个城市帖子使用相同的布局,您只需要 single-cities.php 。