📅  最后修改于: 2023-12-03 14:51:13.875000             🧑  作者: Mango
在 WordPress 中,自定义帖子类型(Custom Post Type)允许你创建和管理不同的内容类型,比如文章、页面和媒体。在某些情况下,你可能需要创建自定义的帖子类型才能满足你的网站需求。本文将介绍如何使用 WordPress API 来创建自定义帖子类型。
在 WordPress 中,你需要在 functions.php 文件或一个独立的插件中定义你的自定义帖子类型。以下是一个定义自定义帖子类型的示例代码:
add_action( 'init', 'create_post_type' );
function create_post_type() {
register_post_type( 'product',
array(
'labels' => array(
'name' => __( 'Products' ),
'singular_name' => __( 'Product' )
),
'public' => true,
'has_archive' => true,
'rewrite' => array('slug' => 'products'),
)
);
}
在上述代码中,我们使用了 register_post_type()
函数来定义我们的自定义帖子类型,并在 init
钩子上注册它。
register_post_type()
函数需要两个参数:帖子类型的名称和帖子类型的选项。在本例中,我们将帖子类型命名为 product
,并设置了一些选项,包括标签(显示在 WordPress 后台),公共(它是否可以被公开访问),存档(指定存档页面的 URL),重写(自定义帖子类型的URL),等等。
你可以使用 WordPress 提供的 register_meta()
函数来定义自定义帖子类型的元数据。元数据是附加到特定帖子类型的信息。
以下是一个定义自定义帖子类型元数据的示例代码:
add_action( 'init', 'create_product_meta' );
function create_product_meta() {
register_meta( 'post', 'product_price', array(
'type' => 'float',
'sanitize_callback' => 'sanitize_text_field',
'auth_callback' => 'is_admin',
'single' => true,
'show_in_rest' => true,
) );
}
在上述代码中,我们使用 register_meta()
函数来定义 product_price
元数据。
register_meta()
函数需要三个参数:帖子类型、元数据名称以及元数据选项。在本例中,我们将元数据绑定到帖子类型 post
,并设置了一些选项,包括数据类型,清理回调(用于清理输入数据),验证回调(用于确保权限),单一值(是否只保存一个值)以及在 REST API 中显示选项。
现在你已经定义了自定义帖子类型和元数据,你可以开始使用它们来创建新的帖子了。以下是一个创建新帖子的示例代码:
$post_id = wp_insert_post( array(
'post_title' => 'My Product',
'post_type' => 'product',
'meta_input' => array(
'product_price' => 19.99
),
) );
在上述代码中,我们使用 wp_insert_post()
函数来创建新的帖子,并设置了标题和帖子类型为 product
。我们还将 product_price
元数据设置为 19.99
。
WordPress 的自定义帖子类型功能非常强大且灵活,能够满足各种网站需求。通过使用 WordPress API 中的 register_post_type()
和 register_meta()
函数,你可以轻松定义自己的自定义帖子类型和元数据,并在 WordPress 后台界面中方便地管理它们。