自定义代码来驱动与wordpress中的自定义帖子类型同名的页面

时间:2018-09-18 01:25:08

标签: php wordpress custom-wordpress-pages

如果我创建页面,则可以创建自定义模板php文件来驱动它们。例如,我可以使用“ page-villages.php”而不是默认的“ page.php”来驱动“村庄”页面

但是。如果我有一个名为“ town”的自定义帖子类型,并且尝试创建一个名称为“ Towns”的页面,则似乎无法使用名为“ page-towns.php”的php文件来驱动它,它始终默认为“ index.php”

可能与注册有关?

  register_post_type('town', array(  /* by default, the post type name is the SLUG for that post type*/
    'public' => true, /* makes post type visible to admins, editors, etc*/
    'supports' => array('title', 'editor', 'thumbnail', 'excerpt', 'custom-fields'),
    'has_archive' => true, /* make post type have a archive URL */
    'rewrite' => array('slug' => 'towns'), /*plural name for the SLUG instead of default singular name */
    'labels' => array(
      'name' => 'Towns',
      'add_new_item' => 'Add New Town',
      'edit_item' => 'Edit Town',
      'all_items' => 'All Towns',
      'singular_name' => 'Town'
    ),
    'menu_icon' => 'dashicons-admin-multisite'
  ));

有没有办法解决这个问题?

1 个答案:

答案 0 :(得分:1)

您正在寻找single-{post}.php template file

如果文件 single.php 存在,则Wordpress将在查看单个帖子时使用该文件。自定义帖子类型也将使用该文件。如果您想覆盖它,请使用单次{您的邮递名} .php

在您的情况下,您将使用 single-towns.php

-

此外,我相信您应该使用一个唯一的名称来命名自定义帖子类型,因此也许更新为使用 town 作为您的帖子名称,然后您将使用 single-town.php < / em>作为模板文件。