如何在 WordPress 中创建自定义帖子类型

已发表: 2024-02-21

WordPress 是一个功能强大的内容管理系统 (CMS),提供许多灵活性和自定义选项。

然而,有时,默认的帖子和页面可能无法满足您的需求。

这就是自定义帖子类型的用武之地 - 它们为您提供了按照您想要的方式展示独特内容的关键。

在这篇分步文章中,我们将引导您创建自定义帖子类型,解释其优点,并帮助您像专业人士一样展示它们。

那么,事不宜迟,让我们开始吧!

目录

  1. 什么是自定义帖子类型?
  2. 为什么要创建自定义帖子类型?
  3. 自定义与默认 WordPress 帖子类型
  4. 如何在 WordPress 中创建自定义帖子类型
    • 使用插件创建自定义帖子类型
    • 手动创建自定义帖子类型
  5. 结论

1什么是自定义帖子类型?

自定义帖子类型是在 WordPress 中定义新内容类型的一种方法。 默认情况下,WordPress 附带多种帖子类型,例如

  • 帖子
  • 页数
  • 附件
  • 修订
  • 导航菜单
  • 自定义CSS
  • 变更集

但是,您可以创建自定义帖子类型,该类型将允许您注册新的内容类型及其数据字段、编辑界面、显示选项和永久链接结构。

例如,您可能需要一个用于推荐的自定义帖子类型,其中包含引用、作者姓名和公司字段。 或者您可以选择包含日期、位置、图像等字段的自定义事件帖子类型。

通过自定义帖子类型,您可以创建具有独特属性和分类法的内容类型。

2为什么要创建自定义帖子类型?

以下是您可能需要在 WordPress 中自定义帖子类型的几个原因:

  1. 在您的网站上组织不同类型的内容。
  2. 更好地控制内容的显示。
  3. 为不同类型的内容启用不同的功能集。
  4. 为特定类型的内容创建独特的布局或功能。
  5. 通过简化内容查找和导航来改善用户体验。
  6. 为不同类型的内容自定义 WordPress 管理面板。
  7. 通过以更有意义的方式构建内容来增强网站的搜索引擎优化。

3自定义与默认 WordPress 帖子类型

现在我们已经介绍了基础知识,让我们看看自定义和默认 WordPress 帖子类型之间的差异。

自定义帖子类型默认帖子类型
由用户创建由 WordPress 预定义
可以具有独特的属性和分类法仅限于预先存在的属性和分类法
提供灵活性和定制化有限的定制选项
允许独特的模板和布局模板选项有限
可用于特定内容类型通用内容类型
需要编码或安装插件内置功能
需要手动设置和配置开箱即用
通过结构化内容增强用户体验内容的标准格式

4如何在 WordPress 中创建自定义帖子类型

在 WordPress 中创建自定义帖子类型可以通过使用插件或手动创建来实现。

让我们详细探讨这些方法。

4.1使用插件创建自定义帖子类型

使用插件创建自定义帖子类型为那些不喜欢修改代码或寻求更快更简单的方法的人提供了方便的解决方案。

首先,安装并激活自定义帖子类型 UI 插件。 您可以在我们的分步指南中找到有关如何安装 WordPress 插件的详细说明。

激活后,从 WordPress 仪表板访问CPT UI → 添加/编辑帖子类型部分。 这将引导您进入“添加新帖子类型”选项卡。

在此选项卡中,您可以开始自定义基本设置。 在这里,您可以指定自定义帖子的 URL,由字母或数字字符组成。

您还需要为自定义帖子类型提供复数和单数菜单名称。

添加自定义帖子类型

如果需要,您可以单击根据所选标签填充其他标签链接。 这会自动填写下面的附加标签字段,从而节省您的时间。

接下来,您可以通过单击“添加帖子类型”按钮保存更改,或继续进行以下设置“其他标签”部分。

如果您没有使用自动填充标签功能,您可以手动输入帖子类型的描述并提供其他标签。

附加标签

在管理指定帖子类型中的内容时,这些标签将在整个 WordPress 用户界面中使用。

继续进行常规设置,您可以在此处配置自定义帖子类型的属性和结构。 每个选项均附有简短说明,可帮助您做出适当的选择。

常规设置

在设置的最后部分,您将看到支持和分类选项。 选中您希望自定义帖子类型支持的功能的复选框,然后在“分类法”部分中重复该过程。

分类部分

对设置感到满意后,单击“添加帖子类型”按钮以保存更改。

保存后,您会注意到新创建的自定义帖子类型显示为 WordPress 中的菜单项之一,如下所示。

我的活动部分

现在,我们来讨论手动方法。

4.2手动创建自定义帖子类型

如果您更喜欢手动创建自定义帖子类型,则需要编辑主题的functions.php 文件。

通常,您可以通过 FTP 或 WordPress 仪表板访问 WordPress 安装的文件来访问functions.php 文件。

但是,由于更新主题后可能会丢失代码,因此建议使用 WordPress 代码片段插件,例如 WPCode。

要继续,您需要安装并激活 WPCode 插件。

激活后,转到 WordPress 仪表板中的代码片段 → 添加片段。 将鼠标悬停在“添加自定义代码(新代码段)”上,然后单击“使用代码段”按钮。

代码片段插件

这将带您进入“创建自定义片段”页面。 接下来,为您的代码片段指定一个标题,将开关切换到“活动”,然后将代码类型更改为“PHP 代码片段” ,如下所示。

自定义片段

之后,将以下代码粘贴到“代码预览”区域。

 // Function to register our custom post type function create_posttype() { register_post_type( 'events', // CPT Options array( 'labels' => array( 'name' => __( 'Events' ), 'singular_name' => __( 'Event' ) ), 'public' => true, 'has_archive' => true, 'rewrite' => array('slug' => 'events'), 'show_in_rest' => true, ) ); } // Hook our function to 'init' add_action( 'init', 'create_posttype' );

提供的代码创建一个名为“事件”的基本自定义帖子类型,该类型将显示在您的管理菜单中并且与任何主题兼容。

如果您只需要简单的自定义帖子类型,则可以将“事件”和“事件”替换为所需的 slug 和 CPT 名称,然后单击“更新”按钮。

但是,如果您的自定义帖子类型需要其他选项,则可以使用以下代码而不是上一个代码。

此代码通过各种选项增强了“事件”自定义帖子类型,包括对修订、特色图像、自定义字段的支持以及与名为“位置”的自定义分类法的关联。

 /* * Creating a function to create our custom post type */ function custom_post_type() { // Set UI labels for Custom Post Type $labels = array( 'name' => _x( 'Events', 'Post Type General Name', 'astra' ), 'singular_name' => _x( 'Event', 'Post Type Singular Name', 'astra' ), 'menu_name' => __( 'Events', 'astra' ), 'parent_item_colon' => __( 'Parent Event', 'astra' ), 'all_items' => __( 'All Events', 'astra' ), 'view_item' => __( 'View Event', 'astra' ), 'add_new_item' => __( 'Add New Event', 'astra' ), 'add_new' => __( 'Add New', 'astra' ), 'edit_item' => __( 'Edit Event', 'astra' ), 'update_item' => __( 'Update Event', 'astra' ), 'search_items' => __( 'Search Event', 'astra' ), 'not_found' => __( 'Not Found', 'astra' ), 'not_found_in_trash' => __( 'Not found in Trash', 'astra' ), ); // Set other options for Custom Post Type $args = array( 'label' => __( 'events', 'astra' ), 'description' => __( 'Event listings', 'astra' ), 'labels' => $labels, // Features this CPT supports in Post Editor 'supports' => array( 'title', 'editor', 'excerpt', 'author', 'thumbnail', 'comments', 'revisions', 'custom-fields', ), // Taxonomy associated with this CPT 'taxonomies' => array( 'location' ), /* A hierarchical CPT is like Pages and can have Parent and child items. A non-hierarchical CPT is like Posts. */ 'hierarchical' => false, 'public' => true, 'show_ui' => true, 'show_in_menu' => true, 'show_in_nav_menus' => true, 'show_in_admin_bar' => true, 'menu_position' => 5, 'can_export' => true, 'has_archive' => true, 'exclude_from_search' => false, 'publicly_queryable' => true, 'capability_type' => 'post', 'show_in_rest' => true, ); // Registering the Custom Post Type register_post_type( 'events', $args ); } /* Hook into the 'init' action so that the function containing our CPT registration is not unnecessarily executed. */ add_action( 'init', 'custom_post_type', 0 );

在此代码中,分层自定义帖子类型值设置为false 。 要使自定义帖子类型显示为页面而不是帖子,您可以将此值更改为true

代码中使用的文本域是“astra”。 因此,要使用主题的文本域(如果它支持翻译),请转到管理面板中的外观 → 主题文件编辑器

如下所示,导航到 style.css 以查看主题的文本域。

导航到 style.css

请记住在 WPCode 插件中保持您想要的代码处于活动状态,并在进行更改后单击“更新”按钮。

注意:避免组合注册相同自定义帖子类型的两个片段,这会导致 WordPress 错误。 对于其他帖子类型,请为每个帖子创建一个新的代码片段。

5结论

将自定义帖子类型添加到您的 WordPress 网站可以显着改进其功能和组织。

按照本指南中的步骤操作,您可以轻松创建满足您特定需求的自定义帖子类型。

以下是一些可以帮助您的提示:

  • 设计自定义帖子类型时,请牢记您的受众。 确保它们易于定位、导航和理解。
  • 请毫不犹豫地尝试不同的配置,找到最适合您网站的配置。
  • 在将任何代码应用到您的实时网站之前,建议在临时环境中对其进行测试,以避免潜在的问题。
  • 在进行任何更改之前,请务必备份您的网站,以确保您可以在需要时恢复它。

有了这个,您可以通过努力和实验将您的 WordPress 网站提升到新的高度。

如果您发现这篇文章有帮助,请通过推文@rankmathseo 分享您的反馈。