📜  将自定义数据保存到数据库 wordpress (1)

📅  最后修改于: 2023-12-03 15:25:22.099000             🧑  作者: Mango

将自定义数据保存到数据库 WordPress

WordPress 是一个功能强大、易于使用的内容管理系统,它允许您创建和管理自定义数据类型。本文将介绍如何将自定义数据保存到 WordPress 数据库中。

步骤 1:创建自定义数据类型

要将自定义数据保存到 WordPress 数据库中,首先需要创建自定义数据类型。可以通过使用 register_post_type() 函数来创建自定义数据类型。该函数允许您指定有关自定义数据类型的各种设置,例如名称、标签、支持的字段和自定义分类法等。

下面是创建自定义数据类型的示例代码:

function create_custom_post_type() {
    $args = array(
        'public' => true,
        'label'  => 'My Custom Post Type',
        'supports' => array( 'title', 'editor', 'thumbnail' ),
        'taxonomies' => array( 'category', 'post_tag' )
    );

    register_post_type( 'custom_post_type', $args );
}

add_action( 'init', 'create_custom_post_type' );

该代码将创建一个名为“My Custom Post Type”的自定义数据类型,并支持标题、编辑器和缩略图字段,以及默认的分类法和标签。

步骤 2:获取和验证数据

要向数据库中插入自定义数据,您需要获取和验证用户提交的数据。通常使用 WordPress 的 $_POST 变量来获取提交的数据。然后,您可以使用 sanitize_text_field() 函数来验证和清理输入的数据以防止代码注入或 XSS 攻击。

下面是获取并验证数据的示例代码:

function save_custom_post_data() {
    if ( isset( $_POST['custom_post_data_nonce'] ) && wp_verify_nonce( $_POST['custom_post_data_nonce'], 'custom_post_data' ) ) {
        $title = sanitize_text_field( $_POST['title'] );
        $content = sanitize_text_field( $_POST['content'] );
        $featured_image = sanitize_text_field( $_POST['featured_image'] );
        //...
    }
}

add_action( 'save_post', 'save_custom_post_data' );

该代码使用 wp_verify_nonce() 函数检查是否正确设置了安全性字段,并将提交的数据传递给 sanitize_text_field() 函数进行验证和清理。

步骤 3:插入数据到数据库

一旦您获取和验证了提交的数据,就可以将其插入到 WordPress 数据库中。可以使用 wp_insert_post() 函数将数据插入到数据库中。该函数将返回插入的自定义数据的 ID。

下面是将数据插入到数据库中的示例代码:

function save_custom_post_data( $post_id ) {
    if ( isset( $_POST['custom_post_data_nonce'] ) && wp_verify_nonce( $_POST['custom_post_data_nonce'], 'custom_post_data' ) ) {
        $title = sanitize_text_field( $_POST['title'] );
        $content = sanitize_text_field( $_POST['content'] );
        $featured_image = sanitize_text_field( $_POST['featured_image'] );
        
        $new_custom_post = array(
            'ID'            => $post_id,
            'post_title'    => $title,
            'post_content'  => $content,
            'post_status'   => 'publish',
            'post_type'     => 'custom_post_type'
        );
        
        wp_update_post( $new_custom_post );
    }
}

add_action( 'save_post', 'save_custom_post_data' );

该代码使用 wp_update_post() 函数将提交的数据插入到数据库中。

结论

如上所述,将自定义数据保存到 WordPress 数据库中需要三个步骤。首先,您需要创建自定义数据类型。然后,您需要获取和验证用户提交的数据。最后,您需要将数据插入到 WordPress 数据库中。掌握这些步骤,您就可以轻松地通过 WordPress 创建任何类型的自定义内容。