wp_insert_post自定义帖子类型

时间:2012-08-20 14:55:33

标签: wordpress

我正在使用以下代码插入自定义帖子类型:

if(isset($_POST['submit'])){

    $post_id = wp_insert_post( array(
                    'post_status' => 'publish',
                    'post_type' => 'custom_type',
                    'post_title' => 'Some post',
                    'post_content' => 'Lorem ipsum'
                ) );

}

我正在收到错误页面;标题:“WordPress失败通知”和页面中的文字“你确定要这样做吗?

请再试一次。“

但是当我尝试插入post_type:post然后一切都好。 当我尝试插入没有isset时,一切都很好;

$post_id = wp_insert_post( array(
                        'post_status' => 'publish',
                        'post_type' => 'custom_type',
                        'post_title' => 'Some post',
                        'post_content' => 'Lorem ipsum'
                    ) );

有人有同样的问题吗?

4 个答案:

答案 0 :(得分:3)

我没有找到除此之外的解决方案(AND IT WORKS):

if(isset($_POST['submit'])){

    $post_id = wp_insert_post( array(
                    'post_status' => 'publish',
                    'post_type' => 'post',
                    'post_title' => 'Some post',
                    'post_content' => 'Lorem ipsum'
                ) );

$post_type = 'custom_type';

$query = "UPDATE {$wpdb->prefix}posts SET post_type='".$post_type."' WHERE id='".$post_id."' LIMIT 1";

GLOBAL $wpdb; 

$wpdb->query($query);

}

答案 1 :(得分:1)

插入新的自定义帖子类型时遇到同样的问题。通过在调用wp_insert_post函数之前取消$ _POST来找到临时解决方案。

答案 2 :(得分:1)

我得到了我的工作:

PHP,放在标题之前:

if(isset($_POST['new_post']) == '1') {

$new_post = array(
      'ID' => '',
      'post_type' => 'customtype', // Custom Post Type Slug
      'post_status' => 'publish',
      'post_title' => $_POST['post_title'],
    );

$post_id = wp_insert_post($new_post);
$post = get_post($post_id);
}

并在HTML中:

<form method="post" action="">

      <input name="post_title" type="text" />

      <input type="hidden" name="new_post" value="1" />
      <input type="submit" name="submit" value="Post" />

</form>

答案 3 :(得分:0)

试试这个,这是表格标题

<form id="insert_new_lesson" name="insert_new_lesson" method="post" action="" class="lesson-form">;

我做的if语句是这个

if ( 'POST' == $_SERVER['REQUEST_METHOD'] && !empty( $_POST['action'] ) && 'insert_new_lesson' == $_POST['action'] )