足够说,让我们来实现本教程的目的,即在WordPress中学习自定义帖子类型的复杂性。
>我希望解决我个人与CPT合作的许多障碍,以及您可以做的一些很酷的事情。
>自定义帖子类型定义
在内部,所有帖子类型都存储在wp_posts数据库表中,但通过称为post_type的列进行区分。
> POST类型是指在WordPress数据库帖子表中保留的各种结构化数据。>帖子类型的示例是帖子(一组博客帖子),页面(一组页),附件(一组上传的媒体文件)和修订版(一组邮政修订版)在WordPress中。
武装着邮政类型的定义,一种创建并注册到WordPress的新帖子类型被称为自定义邮政类型。
>如果您正在构建具有WordPress的公司或商业网站,则可以创建的帖子类型的示例是投资组合,推荐和产品。
现在我们已经了解了自定义帖子类型的概念,接下来就是学习如何创建它们。
创建自定义帖子类型从上面的代码中,您可以看到register_post_type()具有第二个函数参数,该函数接受自定义自定义帖子类型的各个方面所需的许多数组参数。
<span><span>function portfolio_cpt() {</span> </span> <span>$args = array( </span> <span>'label' => 'Portfolio', </span> <span>'public' => true, </span> ); register_post_type( <span>'portfolio', $args ); </span>} add_action( <span>'init', 'portfolio_cpt' );</span>您现在应该看到portfolio自定义帖子类型出现在WordPress Admin仪表板中。
>值得注意的是,在调用register_post_type()时,第二个参数是可选的。也就是说,cpt也可以如下创建:
>
>让我们介绍一些数组参数,以自定义CPT及其各自的功能。
<span><span>function portfolio_cpt() {</span> </span> register_post_type( <span>'portfolio' ); </span>} add_action( <span>'init', 'portfolio_cpt' );</span>标签
>您的自定义帖子类型的复数描述名称。例如,如果您要创建电影CPT,则应该是电影。
>它将默认为$ post_type的值,这是register_post_type()的第一个参数。
该帖子类型的标签数组。每个字符串都是特定管理页面中显示的一些文本。
>如果您要创建供公众使用的插件,请确保可以翻译这些字符串。
>
描述>公共
show_ui:确定是否显示给管理屏幕。
>菜单_icon
新的帖子类型将默认为“帖子”菜单图标,但是如果您想要一个自定义图标,请将此标签设置为图标或图像文件的URL。
说您想使用下载dashicon,将此标签设置为dashicon值,如下所示:
<span><span>function portfolio_cpt() {</span> </span> <span>$args = array( </span> <span>'label' => 'Portfolio', </span> <span>'public' => true, </span> ); register_post_type( <span>'portfolio', $args ); </span>} add_action( <span>'init', 'portfolio_cpt' );</span>
层次结构
这个论点使您可以决定是否制作CPT层次结构。默认值是错误的。设置为true以使您的CPT层次结构。
<span><span>function portfolio_cpt() {</span> </span> register_post_type( <span>'portfolio' ); </span>} add_action( <span>'init', 'portfolio_cpt' );</span>支持
将此参数设置为false将阻止默认(标题和编辑器)行为。
提供一个回调函数,在设置编辑表单的元框时将调用。回调函数获取一个参数$ post,其中包含当前编辑帖子的WP_POST对象。
>
<span><span>function portfolio_cpt() {</span> </span> <span>$args = array( </span> <span>'label' => 'Portfolio', </span> <span>'public' => true, </span> ); register_post_type( <span>'portfolio', $args ); </span>} add_action( <span>'init', 'portfolio_cpt' );</span>分类法
has_archive
<span><span>function portfolio_cpt() {</span> </span> register_post_type( <span>'portfolio' ); </span>} add_action( <span>'init', 'portfolio_cpt' );</span>
重写
>
让我们来看看一些示例,以清楚起见。>
说您创建了一个自定义帖子类型,但希望将URL slug从>评论
更改为>评估>,使用以下重写参数将从http://示例更改URL 。 CPT存档。 >每当您进行WordPress URL重写时,请确保单击“设置”中的“保存更改”按钮>>永久链接以重新创建重写规则。
><span>'menu_icon' => get_stylesheet_directory_uri() . '/images/portfolio-icon.png',</span>基本上,slug定义了新的URL slug,而使用_front确定是否使用前基底座预付费永久链接结构。
>在_front上仍然不清楚吗?让我们看看一个例子。
>说您有一个固定链接结构,带有
博客,如下图所示。
>>如果with_front设置为false,则单个帖子和档案库的URL变为http://example.com/blog/assessment/harry-potter/ and http://example.com/blog/assessment/但是,如果将其设置为真,则单个帖子和档案存档的URL分别为http://example.com/assessment/harry-potter/和http://example.com/assessment/。
请注意后者中博客的遗漏?这就是区别。
>使用此参数来决定是否可以通过WordPress导出工具导出属于您的自定义帖子类型的帖子。默认情况下,这将设置为true。
此参数允许您控制用于获取此类型帖子的查询变量。
如果设置为true,它将允许您通过example.com/?book=harry-potter请求书籍自定义帖子类型,其中harry-potter是书本或帖子的url slug。
如果设置为字符串而不是true(例如出版),则可以: “ query_var”的警告>
> query_var在您的cpt注册数组中未定义,它默认为$ post_type,除非将其设置为false。>
http://example.com/?review=some-random-string
http://example.com/a-post-slug-here/?foo=bar&review = some-random-string
>现在我们已经覆盖了基础,现在是时候指出WordPress插件存储库中的许多插件,使创建自定义帖子类型非常简单。
>
>示例包括(但不限于):自定义帖子类型UI
自定义邮政类型制造商
>如何在WordPress中创建自定义帖子类型?输入WordPress涉及在主题的函数.php文件中添加几行代码。您需要使用register_post_type()函数,该函数允许您指定自定义帖子类型的名称,标签和其他功能。请记住,通过访问永久链接设置页面创建新的自定义帖子类型之后,要刷新您的重写规则。
我可以使用插件创建自定义帖子类型吗?
>>如何在我的自定义帖子类型中添加分类法? register_taxonomy()函数。此功能使您可以创建新的分类法,指定其标签,并将其与您的自定义帖子类型相关联。然后,您可以使用此分类法来对您的自定义帖子类型的内容进行分类和过滤。
>在注册自定义帖子类型时,可以使用“支持”参数自定义帖子类型自定义admin界面。该参数允许您指定帖子编辑屏幕中的哪些功能,例如标题,编辑器,缩略图和自定义字段。
是的,您可以在网站的搜索结果中包含自定义帖子类型。这可以通过在注册自定义帖子类型时将“ dubl_from_search”参数设置为false来完成。您还可以使用插件或自定义代码来进一步自定义网站的搜索功能。
>以上是WordPress自定义帖子类型的权威指南的详细内容。更多信息请关注PHP中文网其他相关文章!