WordPress

时间:2017-12-23 15:49:24

标签: php wordpress wordpress-theming custom-post-type

我有一个名为 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,是吗??

2 个答案:

答案 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