安装 WordPress时,系统最初会为您提供三种内置内容类型:帖子、页面和媒体。但是,随着使用方式的多样化,这些标准选项可能无法满足每个人的需求。
为了解决这个问题,WordPress 已经发展得更加灵活和先进。这就是 WordPress 自定义帖子类型发挥作用的地方。它们提供了一种创建和管理超出标准帖子、页面和媒体的内容的方法。
在这篇博文中,我将指导您在 WordPress 中创建和管理自定义帖子类型,从了解它们的重要性到解决常见问题。如果您使用的是Cloudways 的托管 WordPress 托管服务器,则可以轻松按照以下步骤操作。让我们开始将您的内容创作提升到一个新的水平!
什么是自定义帖子类型?
WordPress 中的自定义帖子类型可以将您的网站变成强大的 CMS。它们允许您创建除标准帖子、页面和媒体之外的不同类型的内容。您可以创建的自定义帖子类型数量没有限制。
例如,如果您运营一个新闻网站,则可以创建一个名为“新闻”的自定义帖子类型。此新类型将在 WordPress 仪表板管理区域中拥有自己的专用部分。您可以根据需要创建任意数量的帖子类型,例如“电影”、“作品集”等。
如果您使用的是WordPress 5.x,可以查看有关为您的自定义帖子类型启用Gutenberg 编辑器的详细指南。有关 WordPress 中其他帖子类型的更多信息,请参阅自定义帖子类型codex 文档。
默认帖子类型与自定义帖子类型
默认和自定义帖子类型都有各自的用途,并且可以在您的 WordPress 网站上共存,以提供丰富多样的内容体验。看看它们的区别!
默认帖子类型 | 自定义帖子类型 | |
可用性 | 安装 WordPress 时默认可用。 | 需要手动或使用插件创建。 |
类型 | 帖子、页面和媒体。 | 无限制,根据您的需求(例如新闻、电影、作品集)。 |
灵活性 | 仅限于内置选项。 | 高度灵活,可以根据您的特定需求进行定制。 |
用法 | 适合标准博客文章、静态页面和媒体文件。 | 非常适合不适合默认帖子类型的专门内容。 |
为什么要使用自定义帖子类型?
以下是您应该在 WordPress 中使用自定义帖子类型的几个原因:
- 它们通过分离不同类型的内容来帮助保持网站整洁。
- 它们可以让访问者更轻松地在您的网站上找到他们想要的内容。
- 它们可以让你为某些帖子添加特殊功能,例如书评的评论分数。
- 它们可以帮助您的网站在搜索引擎结果中排名更高。
- 它们使创建一致、结构化的内容变得更加容易,尤其是当多个人向您的网站添加内容时。
在 WordPress 中创建自定义帖子类型
在 WordPress 中创建自定义帖子类型有两种方法:通过插件或手动。每种方法都适合不同的用户技能和偏好。让我们一步一步来看看。
方法 1:通过插件创建自定义帖子
您可以使用正确的插件轻松创建 WordPress 自定义帖子类型。在本文中,我将使用自定义帖子类型 UI插件来指导您完成整个过程。
步骤 1:安装并激活插件Custom Post Type UI
第一步是安装并激活插件。
- 转到您的 WordPress 仪表板;
- 选择插件→添加新插件;
- 搜索‘Custom Post Type UI’插件;
- 安装并激活插件。
第 2 步:设置并配置插件
一旦激活,您会在仪表板中找到一个名为CPT UI 的新菜单项。
- 点击CPT UI → 添加/编辑帖子类型来创建新的自定义帖子类型;
- 填写Post Type Slug,此字段为必填字段,且必须是唯一的(通常是小写字符串,不含空格);
- 添加您的自定义帖子类型的复数和单数名称,因为它们将出现在仪表板中;
- 点击添加帖子类型按钮。
步骤 3:使用自定义帖子类型
您的新自定义帖子类型现在应该可以在 WordPress 仪表板中看到。您可以通过单击自定义帖子类型的菜单项来开始添加新内容。
- 转到添加新帖子并自定义您的自定义帖子类型。
- 我会在我的新闻页面上添加报价和联系表;
- 为此,请单击+(加号);
- 选择“Pullquote”。
- 选择联系表单 7。
- 单击“发布”按钮。
- 最终的新闻页面如下所示。
方法 2:手动创建 WordPress 自定义帖子
现在,让我们按照以下步骤在 WordPress 网站上手动创建自定义帖子类型:
- 导航到主题目录中的function.php文件;
- 将以下代码添加到function.php文件。
/* Custom Post Type Start */
function create_posttype() {
register_post_type( 'news',
// CPT Options
array(
'labels' => array(
'name' => __( 'news' ),
'singular_name' => __( 'News' )
),
'public' => true,
'has_archive' => false,
'rewrite' => array('slug' => 'news'),
)
);
}
// Hooking up our function to theme setup
add_action( 'init', 'create_posttype' );
/* Custom Post Type End */
- 添加代码后,新闻帖子类型将自动出现在您的 WordPress 菜单中。
- 创建自定义帖子类型时,需要在add_action()中使用init作为钩子,并且register_post_type()函数将接受参数
/*Custom Post type start*/
function cw_post_type_news() {
$supports = array(
'title', // post title
'editor', // post content
'author', // post author
'thumbnail', // featured images
'excerpt', // post excerpt
'custom-fields', // custom fields
'comments', // post comments
'revisions', // post revisions
'post-formats', // post formats
);
$labels = array(
'name' => _x('news', 'plural'),
'singular_name' => _x('news', 'singular'),
'menu_name' => _x('news', 'admin menu'),
'name_admin_bar' => _x('news', 'admin bar'),
'add_new' => _x('Add New', 'add new'),
'add_new_item' => __('Add New news'),
'new_item' => __('New news'),
'edit_item' => __('Edit news'),
'view_item' => __('View news'),
'all_items' => __('All news'),
'search_items' => __('Search news'),
'not_found' => __('No news found.'),
);
$args = array(
'supports' => $supports,
'labels' => $labels,
'public' => true,
'query_var' => true,
'rewrite' => array('slug' => 'news'),
'has_archive' => true,
'hierarchical' => false,
);
register_post_type('news', $args);
}
add_action('init', 'cw_post_type_news');
/*Custom Post type end*/
以下是代码解释:
- $supports:指定帖子类型兼容并支持所有基本功能。
- $labels:指定帖子类型正确引用到管理区域。
- $args:指定新闻的永久链接段和位于帖子菜单下方的菜单位置。
以下是向您的 WordPress 网站添加自定义帖子功能之前和之后的情况。
– 添加功能之前
– 添加功能后
到目前为止,我们介绍的步骤已向您展示了如何将自定义帖子类型注册到任何 WordPress 主题的后端。现在,让我们继续学习如何将自定义帖子添加到您的 WordPress 网站。
添加新的 WordPress 自定义帖子类型
您可以按照以下步骤在 WordPress 网站上添加新的自定义帖子:
- 单击注册的自定义帖子类型,在我们的例子中是新闻;
- 点击添加新;
- 输入帖子的标题和正文;
- 输入摘录并设置特色图片;
- 单击“发布”按钮即可发布新的自定义帖子。
创建模板和获取列表
接下来,是时候创建模板并获取列表了。为此,您需要创建一个名为template-news.php 的新文件。
- 将新创建的文件放在您的主题文件夹中;
- 将以下代码添加到文件中。
<?php
/*Template Name: News*/
get_header();
query_posts(array(
'post_type' => 'news'
)); ?>
<?php
while (have_posts()) : the_post(); ?>
<h2><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></h2>
<p><?php the_excerpt(); ?></p>
<?php endwhile;
get_footer();
?>
选择模板
- 转到您的WordPress 仪表板;
- 点击页面→添加新页面;
- 创建一个名为News的新页面;
- 点击右侧的页面属性,进入模板下的下拉菜单;
- 选择新的模板新闻;
- 单击“更新”按钮来设置您的模板。
请参阅下图来直观地了解上述步骤:
下图代表您的列表页面的最终显示效果:
添加自定义帖子类型的菜单
按照以下步骤将您的自定义帖子类型添加为 WordPress 网站菜单选项的一部分:
- 转到您的WordPress 仪表板;
- 导航到外观→菜单;
- 将新闻页面添加到主菜单以显示指向我们新创建的 WordPress 自定义帖子类型新闻的导航链接;
如需进一步参考,请查看下图。
这就是您的网站在前端的外观。查看下面的图片:
使用 Cloudways 托管 WordPress 主机加速您的网站
完全自由地创建自定义帖子类型。
为自定义帖子类型创建详细信息页面
按照以下步骤为自定义帖子类型创建详细信息页面。
- 添加一个名为single-news.php的新文件(位于您的 WordPress 主题中);
- 将以下代码添加到文件中。
<?php
get_header();
/* Start the Loop */
while (have_posts()) : the_post();
get_template_part('template-parts/post/content', get_post_format());
endwhile; // End of the loop.
get_footer();
?>
现在是时候看看你的详细信息页面是什么样的了:
自定义您的自定义帖子类型
使用 CPT UI 插件自定义您的自定义帖子类型要简单得多。您可以这样做:
- 转到CPT UI →添加/编辑帖子类型;
- 您将看到所有设置。请根据您的需要进行操作;
- 例如,如果您想更改标签或添加新项目,请转到附加标签并进行设置。
- 同样,您也可以使用其他设置来根据需要进行自定义。
在您的网站上显示自定义帖子类型
您可以使用默认存档模板在您的网站上显示自定义帖子类型。
- 进入外观→菜单;
- 在自定义链接下,添加您的URL和链接文本。
- 保存菜单。
- 重新加载页面,您将在网站前端顶部看到新闻。
解决常见问题
在 WordPress 中使用自定义帖子类型 (CPT) 时,您可能会遇到一些常见问题。以下是可能出现的两个最常见问题及其解决方法。
1. 自定义帖子类型不显示
有时,您已添加自定义帖子类型,但它没有出现。 可能的原因可能是:
- 不正确的代码。
- 插件冲突。
解决方案
- 您需要检查代码以确保代码正确。请专家帮助完成此操作。
- 尝试停用插件以检查是否没有与您正在使用的自定义帖子类型插件冲突。
2. 永久链接的问题
如果您遇到与 CPT 相关的永久链接问题,例如 404 错误或不正确的路由,请按照以下方法修复。
解决方案
- 进入设置→固定链接;
- 单击“保存更改”按钮。
此外,有时 CPT 可能与现有页面具有相同的 slug,从而导致冲突。请确保您的 CPT slug 是唯一的。
经常问的问题
问:WordPress 中的自定义帖子类型是什么?
答: WordPress 中的自定义帖子类型功能允许用户定义除默认帖子和页面之外的自己的内容类型。它能够创建满足特定需求的独特内容结构。
问:WordPress 相关帖子中的自定义帖子类型是什么?
答: WordPress 相关文章中的自定义文章类型是指用户创建的内容类型,用于组织和显示特定类型的内容。这些内容类型可以包括产品、作品集项目、活动等,从而增强网站组织和用户体验。
问:如何在 WordPress 中创建自定义帖子类型类别?
答:您可以使用插件或自定义代码在 WordPress 中创建自定义帖子类型类别。如果您想使用插件,请按照以下步骤操作:
- 转到您的 WordPress 仪表板。
- 下载一个插件,如 Custom Post Type UI。
- 安装并激活它。
- 导航到 WordPress 仪表板中的插件设置。
- 注册一个具有必要详细信息的新分类法。
- 将分类法与您的自定义帖子类型关联。
- 保存您的设置。
- 验证功能并进行任何必要的修改。
- 开始使用您的自定义帖子类型类别来组织您的内容。
问:自定义帖子类型 UI 免费吗?
答:是的,Custom Post Type UI 是一款免费的 WordPress 插件,可简化创建和管理自定义帖子类型和分类法的过程。它提供了一个用户友好的界面,用于定义和配置自定义内容类型,而无需编码知识。