要在WordPress前台投稿中使用wp_insert_post

WordPress 前台投稿wp_insert_post时添加自定义分类法数据tax_input

函数并添加自定义分类法数据(tax_input),您需要确保以下几点:

 

  1. 确保已经注册了您的自定义分类法(自定义分类法通常是通过register_taxonomy函数进行注册的)。

  2. 确保您有一个表单,使用户能够选择自定义分类法。

  3. 在提交表单时,您可以捕获用户选择的分类法数据,并将其传递给wp_insert_post函数。

以下是一个简单的示例,演示如何在WordPress前台投稿中使用wp_insert_post并添加自定义分类法数据:

<?php
// 处理前台投稿表单的提交
if (isset($_POST['submit_post'])) {
    // 创建文章数组
    $post_data = array(
        'post_title' => $_POST['post_title'],
        'post_content' => $_POST['post_content'],
        'post_status' => 'publish',
        'post_author' => get_current_user_id(), // 或者您希望的作者ID
    );

    // 插入文章
    $post_id = wp_insert_post($post_data);

    // 检查是否成功插入文章
    if ($post_id) {
        // 获取用户选择的自定义分类法数据
        $custom_taxonomy_data = array();
        if (isset($_POST['custom_taxonomy'])) {
            $custom_taxonomy_data = $_POST['custom_taxonomy'];
        }

        // 添加自定义分类法数据到文章
        if (!empty($custom_taxonomy_data)) {
            wp_set_post_terms($post_id, $custom_taxonomy_data, 'your_custom_taxonomy', false);
        }

        // 成功添加分类法数据
        echo '文章已发布成功!';
    } else {
        // 插入文章失败
        echo '发布文章时出现问题。';
    }
}
?>

<! 在前台显示投稿表单 >
<form method="post" action="">
    <label for="post_title">文章标题:</label>
    <input type="text" name="post_title" id="post_title" required><br>

    <label for="post_content">文章内容:</label>
    <textarea name="post_content" id="post_content" required></textarea><br>

    <! 显示自定义分类法的选项 >
    <label for="custom_taxonomy">选择分类法:</label>
    <?php
    // 获取自定义分类法的选项
    $custom_taxonomy_terms = get_terms(array(
        'taxonomy' => 'your_custom_taxonomy', // 将 'your_custom_taxonomy' 替换为您的自定义分类法名称
        'hide_empty' => false,
    ));

    // 显示分类法选项
    if (!empty($custom_taxonomy_terms)) {
        foreach ($custom_taxonomy_terms as $term) {
            echo '<input type="checkbox" name="custom_taxonomy[]" value="' . $term>term_id . '"> ' . $term>name . '<br>';
        }
    }
    ?>

    <input type="submit" name="submit_post" value="发布文章">
</form>

请注意,上面的示例中,我们假设您已经注册了自定义分类法,并在前台表单中为用户提供了选择这些分类法的选项。用户选择的分类法数据存储在custom_taxonomy数组中,然后使用wp_set_post_terms将其添加到文章中。

确保根据您的需求自定义代码,并将示例中的'your_custom_taxonomy'替换为您实际使用的自定义分类法名称。此外,还可以根据需要进行错误处理和数据验证。