您的位置:  首页 » PHP » 12个最有用的WordPress自定义帖子类型教程

WordPress允许您创建自己的自定义内容类型。这些内容类型称为自定义帖子类型。您可以使用它们来添加产品,评论,食谱等自定义内容。在本文中,我们将分享12个最有用的WordPress自定义帖子类型教程

Custom Post Types

视频教程

订阅WPBeginner

如果您不喜欢视频或需要更多说明,请继续阅读。

1。何时需要自定义帖子类型

在开始在WordPress网站上创建自定义帖子类型或分类之前,评估您的需求非常重要。很多时候,您可以使用默认的WordPress帖子和页面获得相同的结果。

在内置类别和标签的帮助下,您可以通过多种不同方式对内容进行排序。使用页面,您可以设置具有父子关系的内容的分层布局。

如果您不清楚,请参阅本指南,了解何时需要WordPress中的自定义帖子类型或分类。

2.为自定义帖子类型添加图标

创建自定义帖子类型时,如果未提供图标,WordPress将使用默认的帖子图标。您可以将自己的图标添加到自定义帖子类型。这些图标显示在WordPress管理栏中。

WordPress使用管理区域中的字体图标来确保它们在所有设备和屏幕尺寸上看起来都很漂亮。将字体图标添加到自定义帖子类型的最简单方法是使用CPT自定义图标插件。只需安装并激活插件,然后访问插件的设置页面即可添加图标。

Adding a custom post type icon

另一种方法是在使用CPT UI插件创建自定义帖子类型时添加图标。

有关更详细的说明,请参阅本教程,了解如何在WordPress中为自定义帖子类型添加图标。

3。创建自定义帖子类型存档页面

由于CPT UI插件,在WordPress中添加自定义帖子类型变得非常容易。但是,许多初学者在他们的网站上显示自定义帖子类型时遇到问题。

要添加自定义帖子类型存档页面,首先需要确保为自定义帖子类型启用了存档。在大多数情况下,他们是,但如果没有,那么你将需要启用它们。CPT UI插件在高级选项下有一个复选框以启用存档。

Enable Archive for CPT

现在,如果您使用非常永久链接,则可以通过访问以下URL来访问自定义帖子类型存档页面:

http://www.example.com/products/

Replace example.com,包含您自己的域名和带有自定义帖子类型名称的产品。如果您看不到自定义帖子类型,请访问设置»永久链接并单击“保存更改”按钮。这将更新您的固定链接结构,您现在应该能够看到自定义的帖子类型存档页面。

有关更详细的说明,请查看有关自定义帖子类型存档页面的本指南。

您还可以在导航菜单中将菜单项添加到自定义帖子类型。只需转到外观»菜单并点击‘自定义链接’标签。接下来,添加自定义帖子类型名称和URL。

Adding custom post type archive page to navigation menu in WordPress

4。自定义帖子类型的RSS

WordPress带有内置的RSS生成器,适用于所有内容类型,分类,作者和基于日期的存档。它使用适当的URL结构查询数据库并生成您想要查看的RSS源。

例如,要查看自定义帖子类型“电影”的RSS Feed,您需要添加以下网址:

http://www.example.com/feed/?post_type = movies

有关更多详细信息,请参阅如何在WordPress中为自定义帖子类型创建单独的RSS源。

5。将自定义帖子类型添加到主RSS源

默认情况下,WordPress仅在您网站的主RSS源中包含您的博客帖子。这意味着您的主要RSS Feed订阅者无法看到您的自定义帖子类型内容。

您可以通过将以下代码添加到主题的functions.php文件或特定于站点的WordPress插件中,轻松地将自定义帖子类型包含到主RSS源中。

function myfeed_request($qv) {
	if (isset($qv["feed"]) && !isset($qv["post_type"]))
		$qv["post_type"] = array("post", "books", "movies");
	return $qv;
}
add_filter("request", "myfeed_request");

使用您自己的自定义帖子类型替换书籍和电影。

了解有关如何将自定义帖子类型添加到主WordPress RSS源的详细信息。

6。自定义帖子类型的搜索表单

Advanced Search Form

默认的WordPress搜索功能非常有限。特别是如果您在WordPress网站上使用自定义帖子类型。您可以将自定义Google搜索表单添加到WordPress网站,但即使该表单也不允许用户选择搜索参数。

另一个解决方案是使用SearchWP这样的插件,它允许您创建高级搜索表单,并能够搜索所有自定义帖子类型,分类和自定义字段。

如果您更愿意构建自己的自定义搜索表单,那么您需要执行此操作。首先,在您的子主题的searchform.php文件中添加此代码,在搜索表单中添加自定义帖子类型隐藏字段。

<input type="hidden" name="post_type[]" value="articles" />
<input type="hidden" name="post_type[]" value="post" />
<input type="hidden" name="post_type[]" value="videos" /> 
<input type="hidden" name="post_type[]" value="books" />  

此代码只是为自定义帖子类型添加隐藏字段,将值替换为您自己的自定义帖子类型。下一步是告诉WordPress如何处理这些字段。在主题的search.php文件中的循环之前添加此代码:

<form role="search" method="get" id="searchform" action="<?php echo home_url( "/" ); ?>">
<input type="text" name="s" id="s" <?php if(is_search()) { ?>value="<?php the_search_query(); ?>" <?php } else { ?>value="Enter keywords &hellip;" onfocus="if(this.value==this.defaultValue)this.value="";" onblur="if(this.value=="")this.value=this.defaultValue;"<?php } ?> /><br />
	
<?php $query_types = get_query_var("post_type"); ?>
    
<input type="checkbox" name="post_type[]" value="articles" <?php if (in_array("articles", $query_types)) { echo "checked="checked""; } ?> /><label>Articles</label>
<input type="checkbox" name="post_type[]" value="post" <?php if (in_array("post", $query_types)) { echo "checked="checked""; } ?> /><label>Blog</label>
<input type="checkbox" name="post_type[]" value="books" <?php if (in_array("books", $query_types)) { echo "checked="checked""; } ?> /><label>Books</label>
<input type="checkbox" name="post_type[]" value="videos" <?php if (in_array("videos", $query_types)) { echo "checked="checked""; } ?> /><label>Videos</label>
    
<input type="submit" id="searchsubmit" value="Search" />
</form>

7。为自定义帖子类型添加粘性帖子

粘性帖子是WordPress中的一项功能,允许您添加精选帖子。默认情况下,它仅适用于博客帖子。

您可以通过安装和激活Sticky Custom Post Types插件为您的自定义帖子类型启用它。激活后,转到设置»阅读并向下滚动到Sticky Custom Post Types部分。

接下来,您需要选择您想要的自定义帖子类型。启用此选项。

有关详细信息,请参阅教程,了解如何在WordPress中为自定义帖子类型添加粘性帖子。

8。在自定义帖子类型上禁用Disqus

如果您在WordPress中使用Disqus评论系统,那么您会注意到您的Disqus评论框将开始出现在您的所有自定义帖子类型上。如果您不希望用户对这些自定义帖子类型发表评论,那么您需要为选择性帖子类型手动禁用Disqus。只需将此代码段添加到主题的functions.php文件或特定于站点的插件中。

add_filter( "comments_template" , "wpb_block_disqus", 1 );
function wpb_block_disqus($file) {
if ( "custom_post_type_name" == get_post_type() )
remove_filter("comments_template", "dsq_comments_template");
return $file;

}

不要忘记将custom_post_type_name替换为您自己的自定义帖子类型名称。有关更详细的说明,请参阅我们的指南,了解如何在WordPress中禁用自定义帖子类型的Disqus。

9。在自定义帖子类型中添加用户提交的内容

有时,您可能希望允许用户在您的网站上提交自定义帖子类型的内容。例如,电影评论,食谱等。

一种方法是让用户访问您的WordPress管理区域并为其分配作者用户角色。但如果你不想那样,那么还有另一种方式。

你需要Gravity Forms插件。它允许您添加网站访问者可以使用的公共内容提交表单

安装Gravity Forms之后,您还需要安装和激活Gravity Forms + Custom Post Types插件。

现在创建一个新表单,您会注意到会有一个选项将每个字段映射到您的自定义帖子类型。有关更详细的说明,请参阅我们的教程,了解如何在WordPress中为自定义帖子类型添加用户提交的内容。

10。切换或转换自定义帖子类型

您可能会遇到必须合并或转换自定义帖子类型的情况。您可能还希望将项目从一种帖子类型移动到另一种类型。

只需安装并激活Post Type Switcher插件即可。激活后,转到帖子»所有帖子。如果是自定义帖子类型,请转到显示该帖子类型中所有项目的屏幕。

选择要移动的项目或帖子,然后单击快速编辑链接。您会注意到一个新的下拉菜单,允许您更改该项目的帖子类型。

Post Type Switcher

有关更详细的说明,请参阅有关如何在WordPress中切换或转换自定义帖子类型的教程。

11。使用自定义帖子类型作为分类法

是的,您正确阅读,您可能正在考虑为何使用CPT作为分类法?为什么不创建自定义分类?假设您有书籍的自定义帖子类型和作者的其他自定义帖子类型。现在,您可能希望将作者与他们编写的书籍相关联。您可以为作者创建自定义分类,但是您将拥有作者分类和帖子类型,这只会增加混乱。

只需安装并激活CPT-onomies插件即可。它允许您使用自定义帖子类型作为分类法在帖子类型之间建立关系。

使用此插件,下次添加书籍时,您可以选择作者作为CPT-onomy并显示该作者撰写的所有书籍。详细了解如何将自定义帖子类型用作分类法。

12。用于帖子类型的自定义元框

自定义元框允许您将自定义字段添加到WordPress帖子编辑器屏幕中。这样,您可以为帖子类型创建其他输入字段。在WordPress中创建自定义元字段的最简单方法是使用高级自定义字段插件。

安装插件后,只需在WordPress管理栏中单击自定义字段,然后单击“添加新项”。按照屏幕说明创建一组要添加到自定义帖子类型的自定义字段。

Creating custom fields for post types

这是自定义字段面板在帖子类型的帖子编辑屏幕上显示的方式:

custom fields as displayed on a custom post type edit screen

您可以通过修改主题模板来显示输入到自定义字段中的数据。例如,我们将使用&lt;?php the_field(“imdb_url”);?&GT; 模板标签显示IMDB URL自定义字段。

您还可以在帖子类型中使用 [acf field =“{$ imdb_url}”] 等短代码来显示自定义字段数据。

这就是我们希望这篇文章能帮助你学习WordPress中自定义帖子类型的一些很酷的技巧。您可能还想看看WordPress的这些最佳类别黑客和插件。

如果您喜欢这篇文章,请订阅我们的YouTube频道WordPress视频教程。您也可以在Twitter和Google+上找到我们。

发表评论

电子邮件地址不会被公开。 必填项已用*标注