WordPress 自定义帖子类型

已发表: 2023-02-12

利基网站有时会有内容组织需求,而 WordPress 的原生帖子类型无法满足这些需求。 出于这个原因,您可能想知道在组织和显示您的内容时是否有其他选择。

幸运的是,自定义帖子类型 (CPT) 是 WordPress 中的一个选项,它使您能够创建一种新的内容并根据自己的喜好对其进行自定义。 如果您运行的 WordPress 网站的内容元素超出了传统的帖子和页面,这将非常有帮助。

在本文中,我们将解释自定义帖子类型及其结构。 此外,我们将向您介绍如何手动和使用 WordPress 插件创建 WordPress 自定义帖子类型。 如果你准备好了,让我们开始吧!

目录
1.什么是自定义帖子类型?
2.如何创建自定义帖子类型 – 插件方法(4 个步骤)
2.1. 第 1 步:下载专用插件
2.2. 第 2 步:添加新的自定义帖子类型
2.3. 第 3 步:配置您的新帖子类型
2.4. 第 4 步:创建自定义字段
3.如何创建自定义帖子类型 – 手动方法(分 3 个步骤)
3.1. 第 1 步:找到并打开您的 functions.php 文件
3.2. 第 2 步:插入自定义帖子类型代码
4.第 3 步:添加您网站的文本域
5.在您的站点上显示自定义帖子类型(2 种方法)
5.1. 1.使用默认存档模板
5.2. 2.将它们显示在您的首页上
6.使用 WP Engine 自定义您的网站

什么是自定义帖子类型?

当您在 Web 服务器上安装该软件时,您的 WordPress 数据库会自动创建一个wp_posts表。 该表包含一个post_type列,其中存储了我们将要讨论的信息。

您可能熟悉几种 WordPress 帖子类型,包括:

  • 帖子:传统的“博客”WordPress 帖子,按时间倒序显示,可以分配类别和标签。
  • 页面:这些可以使用父子关系构建以创建层次结构,但通常不分配类别。
  • 导航菜单:帮助访问者浏览您网站的链接列表。
  • 修订:这些保留对其他帖子类型的更改日志或历史记录,以防您需要回滚到以前的版本。
  • 附件:您添加到帖子或页面中的任何媒体也会存储为 WordPress 帖子类型,并且您的图像或视频文件数据存储在wp_postmeta表中。

此外,WordPress 包括两个主要的分类结构。 类别和标签是将帖子分配给不同组的主要方式。 虽然您可以为 CPT 分配类别和标签,但您可能会发现还需要创建自定义分类法,以便更好地组织您的内容。

这可能适用的一个例子是电子商务商店中的产品。 您可以创建一个“产品”CPT,其中包含定价、数量等信息的自定义字段。 然后,使用自定义分类法,您可以创建选项,以您可能想到的任何方式对产品进行分类。

如何创建自定义帖子类型 – 插件方法(4 个步骤)

创建 CPT 的最简单方法是使用 WordPress 插件。 让我们来看看这个过程是如何工作的。

第 1 步:下载专用插件

对于此示例,我们将使用 Pods – 自定义内容类型和字段插件。

该工具使您能够轻松创建和自定义您自己的帖子类型和自定义分类法。 通过 WordPress插件 > 添加新菜单安装插件后,您还需要激活它。

第 2 步:添加新的自定义帖子类型

接下来,您会在管理菜单中找到一个新的Pods 管理选项。 从那里您可以选择Add New ,然后在创建新内容类型或扩展现有内容类型之间进行选择。

对于此示例,我们将选择Create New来演示可用的配置选项。

第 3 步:配置您的新帖子类型

“配置”页面上,您将填写新内容类型的选项。

您可以在此处为您的新内容类型输入单数和复数标签,以及选择您正在创建的自定义内容类型。 这可以是帖子类型、分类法或设置页面。

第 4 步:创建自定义字段

创建标签后,您将被带到另一个设置页面,您可以在其中添加新字段等。

正如您在上面看到的,在我们的 WordPress 产品自定义帖子类型中,我们为价格添加了一个自定义字段。

完成这些设置后,您可以选择保存 Pod。 您现在可以在 WordPress 主菜单中找到您的产品自定义帖子类型。 从那里您可以导航到Product > Add New ,然后开始使用此 WordPress 帖子类型创建内容。

您还会在帖子编辑器中看到一个Pods Shortcode按钮选项。 这使您能够添加来自各种 Pod 项目的字段信息。 您之前创建的任何自定义字段也会显示在您的帖子编辑窗口下方,以便于访问。

编辑内容后,您可以像通常在 WordPress 中一样保存和发布自定义帖子类型。

如何创建自定义帖子类型 – 手动方法(分 3 个步骤)

您还可以通过编辑网站的functions.php文件手动创建 CPT。 我们建议您在开始之前制作一份文件副本或备份您的网站。

第 1 步:找到并打开您的functions.php文件

您可以通过您的网站托管服务商在您的 cPanel 中的文件管理器或使用文件传输协议 (FTP) 应用程序(如 FileZilla)访问您网站的文件。 连接后,您将导航到您的 WordPress 根文件夹,然后导航到wp-content > themes > your-theme

请务必注意,每个主题都有自己的functions.php文件。 如果您选择使用手动过程来创建 CPT,那么当您更改 WordPress 主题时,它们将会丢失。 如果您想确保您的自定义类型无论如何都得到保留,最好改用插件方法。

第 2 步:插入自定义帖子类型代码

您可以在 CPT 中包含的详细信息量非常大。 我们将使用一个简单的示例来演示如何创建“产品”CPT。 您会看到与之前 WordPress 插件设置中可用的相同类型的标签选项和设置:

 //* 创建自定义帖子类型
add_action('init', 'add_custom_post_type');
函数 add_custom_post_type()
{
     register_post_type( 'my_products',
           大批(
               '标签'=>数组(
                    '名称'=>'产品',
                    'singular_name' => '产品',
                    'add_new' => '添加新产品',
                    'add_new_item' => '添加新项目',
                    'edit_item' => '编辑产品',
                    'new_item' => '新产品',
               ),
               '公共' => 真,
               'has_archive => 真,
               '重写'=>数组(
                         '鼻涕虫' => '产品'
               ),
               '支持'=>数组(
                         '标题',
                         '编辑',
                         '作者',
                         '缩略图',
                         '摘抄',
                         “引用”,
                         '自定义字段',
                         “修订”,
                         '页面属性'
               ), 
          )
     );

}

您需要将此代码添加到站点主题文件夹中functions.php文件的末尾。 当然,您还可以在 CPT 代码中添加更多选项,这些选项可以在 GitHub 等资源站点上找到。

第 3 步:添加您网站的文本域

如果您的网站已准备好翻译并且您希望 CPT 也准备好,则需要找到您网站的文本域并确保它包含在您用于 CPT 的代码中。

您可以在 WordPress 主题的style.css文件中找到您网站的文本域。

打开style.css后,您会在文件的标题中找到“文本域”信息。

然后您可以在自定义中引用文本域。 例如,在上面示例代码的“labels”数组中,您可以在“Products”之后添加文本域:

 'name' => 'Products', 'twentynineteen',

您可以将文本域添加到自定义帖子类型中的所有标签,以使其可翻译。

在您的站点上显示自定义帖子类型(2 种方法)

创建 CPT 后,在您的网站上显示它们时,您有几个选择。 我们将介绍您可以使用的两种方法。

1.使用默认存档模板

确保您的 CPT 出现在您网站上的一种方法是调整您用来创建它们的代码。 您可以在数组中包含以下字符串:

 'has_archive' => 真,

完成此操作后,您的 CPT 将根据您主题的存档页面模板拥有自己的存档页面。 然后,您可以使用 URL www.yoursite.com/customposttype访问新的 CPT 存档页面。

2.将它们显示在您的首页上

创建 CPT 的好处之一是能够将某些内容与常规博客文章分开。 但是,如果您想确保此内容出现在您的首页上,您需要在主题的functions.php文件中添加一小段代码:

 // 在主页上显示自定义帖子类型,添加到 functions.php

add_filter( 'pre_get_posts', 'my_get_posts' );

函数 my_get_posts( $query ) {

如果 (is_home() && $query->is_main_query() )
$query->set( 'post_type', array( 'products' ) );
// 添加 cpt,在本例中为 'products' 到数组

返回$查询;
}

当然,您还可以自定义此片段以包含您的 CPT 姓名和其他关键详细信息。

使用 WP Engine 自定义您的网站

自定义帖子类型是一种动态方式,可让您进一步自定义您的 WordPress 网站,并向您网站的访问者提供组织良好的自定义内容类型。 在 WP Engine,我们为用户和开发人员提供最好的资源,可以帮助您为客户创造令人难以置信的数字体验。

为了开发真正引人入胜的数字体验,您需要为满足您的 WordPress 需求而量身定制的托管 WordPress 托管解决方案。 立即查看我们的创新资源和托管计划!