我有一个名为cities的自定义帖子类型。对于此自定义帖子类型,我将有N个城市相关。
我正在尝试为这些页面创建文件,我认为这样可行:
single.php - 通用的
single-cities.php - 列出城市
single-cities- {city-slug} .php - 为城市提供信息
当我尝试:
/ cities - 它显示的是single.php内容,而不是列表中的单个城市内容。
/ cities / sao-paulo - 它正在运作。它显示了有关圣保罗的信息。
测试:
如果我删除单城市 - {city-slug} .php,并尝试访问/ cities / sao-paulo,它将带来单城市.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);
谢谢!
UPDATE
我想我误解了单页的概念。 single.php只是为了呈现单个帖子,而不是列出自定义帖子类型的帖子。
阅读更多有关这种等级的内容,我试图了解我的城市列表结构,然后将城市信息纳入其中。
也许我应该为城市创建一个页面,然后在这个页面(page-cities.php)中创建代码以引入所有城市。
点击每个城市,它应该转到single.php,是吗?
您需要archive-cities.php列出所有城市,一个帖子的单个城市。使用此作为参考:https://codex.wordpress.org/Post_Type_Templates
列出所有帖子的页面称为Archive,它存在于register_post_type参数中声明的slug中。
/ cities - 这是您的存档页面,因此它将调用archive-cities.php
/ cities / sao-paulo - 这是一篇文章。它将首先查找单城市 - {city-slug} .php,然后查找单城市.php。
在大多数情况下,您只能使用单城市{city-slug} .php为特定城市制作唯一的模板文件。假设每个城市帖子使用相同的布局,您只需要single-cities.php。