📌  相关文章
📜  在 WordPress 中创建自定义帖子类型(1)

📅  最后修改于: 2023-12-03 14:51:13.875000             🧑  作者: Mango

在 WordPress 中创建自定义帖子类型

在 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 后台界面中方便地管理它们。