【问题标题】:Custom post type: creating a page template with the same slug自定义帖子类型:创建具有相同 slug 的页面模板
【发布时间】:2017-11-30 15:47:41
【问题描述】:

我目前正在处理自定义帖子类型,并希望能够使用页面模板从 Wordpress 编辑存档页面。所以我创建了名为“汽车”的 CPT,并创建了一个模板名称为“汽车概览”的页面模板。接下来我在 WordPress 中创建一个页面并选择模板页面“汽车概览”并为其提供 URL:mywebsite.com/cars/

现在的问题是 slug 'mywebsite.com/cars/' 已被自定义帖子类型本身使用,导致页面加载自定义帖子类型循环而不是页面模板循环。所以我无法在 WordPress 中编辑标题、内容等。我可以更改页面的 url,但我希望能够控制 WordPress 中的概览页面。

长话短说:如何创建与自定义帖子类型存档页面使用相同 URL 的页面模板?

提前致谢!

【问题讨论】:

  • 您需要将自定义帖子类型 has_archive 扩充为 false 例如'has_archive' => false。这将禁用该帖子类型的默认存档页面。然后,您需要在自定义模板中编写自己的自定义循环(分页可能很棘手,但是有很多资源可以说明如何在自定义循环上实现它)。这是我愿意提供的尽可能多的帮助,因为这是一个非常普遍的问题。祝你好运。

标签: wordpress custom-wordpress-pages


【解决方案1】:

一个简单的解决方案,只需禁用您创建自定义帖子类型的存档:

register_post_type("cars", array("has_archive" => false));

另一种方法,而不是禁用存档并添加另一个页面来显示汽车。更改主题使用的存档模板可能是更好的选择。

第一步是找到您的主题当前使用的模板,将其复制到您的插件文件中,您可以将模板文件更改为您喜欢的任何内容。 You can find more information about it here.

您唯一需要做的就是将 WordPress 指向正确的方向:

add_filter("archive_template", "archive_template");
function archive_template($archive_template) {
    global $post;
    if ($post->post_type == "cars")
    {
        $archive_template = "path/to/your/template.php";
    }

    return $archive_template;
}

禁用存档并手动创建存档对我来说似乎有点奇怪。而且我总是替换存档页面,有时会替换我们主题中的单个页面(通常是 7)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-28
    • 1970-01-01
    • 2016-12-27
    • 2015-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-31
    相关资源
    最近更新 更多