要在WordPress前台投稿中使用wp_insert_post
函数并添加自定义分类法数据(tax_input
),您需要确保以下几点:
确保已经注册了您的自定义分类法(自定义分类法通常是通过register_taxonomy
函数进行注册的)。
确保您有一个表单,使用户能够选择自定义分类法。
在提交表单时,您可以捕获用户选择的分类法数据,并将其传递给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'
替换为您实际使用的自定义分类法名称。此外,还可以根据需要进行错误处理和数据验证。