1

次のコードでカスタム投稿タイプを挿入しています:

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

4 に答える 4

3

これ以外の解決策は見つかりませんでした(そしてそれは機能します):

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);

}
于 2012-08-20T15:13:16.033 に答える
1

新しいカスタム投稿タイプを挿入する際にも同じ問題がありました。wp_insert_post 関数を呼び出す前に $_POST の設定を解除して、一時的な解決策を見つけました。

于 2012-08-25T23:33:44.857 に答える
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'] )
于 2013-02-14T10:54:57.687 に答える