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

Php 用于驱动与wordpress中自定义帖子类型同名的页面的自定义代码,php,wordpress,custom-wordpress-pages,Php,Wordpress,Custom Wordpress Pages,如果我创建页面,我可以创建自定义模板php文件来驱动它们。e、 例如,我可以用“page-Villages.php”而不是默认的“page.php”来驱动“Villages”页面 但是,如果我有一个名为“town”的自定义帖子类型,并且我尝试创建一个名为“Towns”的页面,我似乎无法使用名为“page Towns.php”的php文件来驱动它,它总是默认为“index.php” 这可能与注册有关 register_post_type('town', array( /* by defaul

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

但是,如果我有一个名为“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'
  ));
有办法解决这个问题吗?

您正在寻找解决方案

如果文件single.php存在,Wordpress将在查看单个帖子时使用该文件。自定义帖子类型也将使用该文件。如果要覆盖该文件,请使用single-{your post name}.php

在您的例子中,您将使用single towns.php

-


此外,我认为您应该使用单数名称命名自定义帖子类型,因此,也许可以更新为使用town作为您的帖子名称,然后使用single-town.php作为模板文件。

这是正确的,我的错,自定义帖子类型是“town”,但我创建的页面是“towns”,当我尝试转到slug时“\towns”\,使用的默认php文件是“index.php”,而不是“page.php”或“page town.php”。我会改正我的错误above@JakeSays你有两个选择;1) 创建一个2)创建一个3)创建一个名为Towns的页面,并编辑页面模板,为您的帖子“Town”添加一个自定义帖子循环。