从 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 查询所有帖子的名称。“标签”将显示在仪表板的侧边栏上,就像常规的“发布”菜单一样。如果您展开“查看高级选项”,您将看到更多可以配置的选项。大多数都是不言自明的,例如“Public”和“Show UI”。第一个设置为 true 时允许自定义帖子类型菜单显示在侧边栏上,另一个(显示 ui)设置为 true 时生成菜单面板。
“重写”是允许自定义帖子类型使用SEO 友好的 WordPress URL(永久链接)的原因。“Custom Rewrite Slug”可以设置为您喜欢的任何内容。WordPress 将使用这个 slug 来生成永久链接。因此,如果我们的example.com带有自定义的“电影”重写 slug,那么您的自定义帖子类型永久链接将类似于example.com/movies
WordPress“查询变量”功能允许您查询自定义帖子类型的帖子。因此,如果我们使用前面给出的示例来访问标题为My First Movie Post的帖子,该帖子写在Movies post_type 下,我们可以输入example.com/?movies=my-first-movie-post。所以查询变量看起来像这样:?posttypename
最后,您可以选择自定义帖子类型支持的不同功能,例如缩略图/特色图片和摘录。
创建自定义帖子类型 – 使用 Functions.php 文件
如果您更喜欢在没有插件的情况下使用自定义帖子类型,那么只需将以下代码添加到主题的 functions.php 文件中:
// Creates Movies post typeregister_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,一个参数数组。
label:在管理面板侧边栏中显示的帖子类型的复数名称。
公开:真/假。允许使用此类型的帖子填充管理 UI。
show_ui:真/假。显示或隐藏默认 UI 以管理此帖子类型。
能力类型:默认值:用于检查读取、编辑和删除能力的帖子类型。
分层:帖子类型是否分层。
重写:真/假。默认值:true 如果输入 slug 参数,则 slug 名称将附加到帖子中。
query_var: true/false 将帖子类型名称设置为查询变量。
支持:默认值:标题和作者设置帖子类型允许的不同支持功能。
有关register_post_type()的更多信息,请访问WordPress Codex。
显示自定义帖子类型帖子
要显示来自您的自定义帖子类型的帖子,请在循环中添加以下代码。将“名称”替换为您的帖子类型的名称。注意:您不必在 index.php 文件中添加自定义帖子类型。您可以创建自定义 WordPress 页面并在Loop中运行以下查询。
$query = new WP_Query( ‘post_type=name’ );
要显示来自多个帖子类型的帖子,请将上面的代码更改为以下代码。使用您的自定义帖子类型名称更改电影。
$query = new WP_Query( array( ‘post_type’ => array( ‘post’, ‘movies’ )) );
上面的代码将显示来自常规帖子类型(帖子)和自定义帖子类型电影的所有帖子。
而已。我们希望本教程对您有所帮助,并且不要忘记在评论中发布任何问题。