我正在使用以下代码插入自定义帖子类型:
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'
) );
有人有同样的问题吗?
答案 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'] )