自 2.9 版本起,WordPress 引入了使用自定义帖子类型的功能。现在,在 3.0 版本中,可以选择为自定义帖子类型创建面板,从而使事情变得更进一步。在本教程中,我们将向您展示如何将站点中的自定义帖子类型实现到 WordPress 站点中。
创建自定义帖子类型 – 使用插件
从版本 3.0 开始,WordPress 没有任何内置 UI(用户界面)来创建自定义帖子类型。我们只能使用两个选项来创建自定义帖子类型:插件或将它们硬编码到主题的functions.php文件中。首先,让我们看看如何使用插件来创建自定义帖子类型。
自定义帖子类型 UI
自定义帖子类型 UI是由WebDevStudios的 Brad Williams 开发的插件,它允许您轻松创建自定义帖子类型和分类法。该插件最酷的功能之一是它生成一个代码来创建自定义帖子类型,因此您可以将其粘贴到主题的functions.php文件中。该插件的怪癖之一是无法在所有 post_types 之间共享分类法。
从“自定义帖子类型 UI”面板中单击“添加新内容”。
接下来,您将看到几个需要填写的选项。“帖子类型名称”是 WordPress 用来查询此类 post_type 的所有帖子的名称。“标签”将显示在仪表板的侧边栏上,就像常规的“发布”菜单一样。如果展开“查看高级选项”,您将看到更多可以配置的选项。大多数都是不言自明的,例如“公共”和“显示 UI”。第一个设置为 true 时允许在侧边栏上显示自定义帖子类型菜单,另一个(显示 ui)设置为 true 时生成菜单面板。
“重写”允许自定义帖子类型使用SEO 友好的 WordPress URL(永久链接)。“自定义重写 Slug”可以设置为您喜欢的任何内容。WordPress 将使用此 slug 来生成永久链接。因此,如果我们有example.com带有“电影”的自定义重写段,您的自定义帖子类型永久链接将类似于example.com/movies
WordPress的“Query Var”功能允许您查询自定义帖子类型的帖子。因此,如果我们使用前面给出的示例,要访问标题为My First Movie Post 的帖子(写在Movies post_type 下),我们可以输入example.com/?movies=my-first-movie-post。所以查询变量看起来像这样:?posttypename
最后,您可以选择自定义帖子类型支持的不同功能,例如缩略图/特色图像和摘录。
创建自定义帖子类型 – 使用 Functions.php 文件
如果您更喜欢在没有插件的情况下使用自定义帖子类型,则只需将以下代码添加到主题的functions.php 文件中:
1234567891011121314151617 号18192021 | // Creates Movies post type register_post_type( 'movies' , array ( 'label' => 'Movies' , 'public' => true, 'show_ui' => true, 'capability_type' => 'post' , 'hierarchical' => false, 'rewrite' => array ( 'slug' => 'movies' ), 'query_var' => true, 'supports' => array ( 'title' , 'editor' , 'excerpt' , 'trackbacks' , 'custom-fields' , 'comments' , 'revisions' , 'thumbnail' , 'author' , 'page-attributes' ,) ) ); |
由
让我们剖析一下代码。
register_post_type( $post_type, $args ):此函数接受两个参数,$post_type 或帖子类型的名称,以及 $args,参数数组。
标签:为显示在管理面板侧边栏中的帖子类型指定的复数名称。
公众:真/假。允许管理 UI 填充此类帖子。
show_ui:真/假。显示或隐藏管理此帖子类型的默认 UI。
ability_type:默认值:post 用于检查读取、编辑和删除功能的帖子类型。
分层:帖子类型是否分层。
重写:真/假。默认值: true 如果输入 slug 参数,则 slug 名称将添加到帖子前面。
query_var: true/false 将帖子类型名称设置为查询变量。
支持:默认:标题和作者 设置帖子类型允许的不同支持功能。
访问WordPress Codex了解有关register_post_type()的更多信息。
显示自定义帖子类型帖子
要显示自定义帖子类型的帖子,请在循环中添加以下代码。将“名称”替换为您的帖子类型的名称。注意:您不必在 index.php 文件中添加自定义帖子类型。您可以创建自定义 WordPress 页面并在Loop中运行以下查询。
1 | $query = new WP_Query( 'post_type=name' ); |
由
要显示多种帖子类型的帖子,请将上面的代码更改为以下内容。使用您的自定义帖子类型名称更改电影。
123 | $query = new WP_Query( array ( 'post_type' => array ( 'post' , 'movies' ) ) ); |
由
上面的代码将显示常规帖子类型(帖子)和自定义帖子类型(电影)的所有帖子。