wp_insert_post()返回404错误且未创建页面

时间:2020-05-08 21:53:20

标签: php wordpress

我正在开发一个前端界面来创建某种类型的帖子(与Sportspress一起工作)。 为此,我在自定义插件中使用wp_insert_post()函数。 做了一个非常简单的表格:

<?php 

function team_creation() {
?>

<form action="POST">

    <h3>CREER VOTRE EQUIPE</h3>

    <input type="text" name="post_title">
    <textarea name="post_content" id="" cols="30" rows="10"></textarea>

    <div id="button_container">
        <input type="submit" name="button_submit" value="Sauvegarder" id='save'/>
    </div>



</form>

<?php

if(isset($_POST['button_submit'])) {
    if (!empty($_POST['post_title'])) {
        $my_post = array(
            'post_title'    => $_POST['post_title'],
            'post_content'  => $_POST['post_content'],
            'post_type'  => 'team',
            'post_status' => 'publish',
            'post_author'  => get_current_user_id(),

        );

        // Insert the post into the database
        wp_insert_post( $my_post, true );
    } else {
        echo 'WTF BRO';
    }
}

}
?>

提交表单时,我仍然有一个“找不到页面”页面。你知道为什么吗 ? “找不到404,您正在寻找的页面已被移动或不再存在” 谢谢!

2 个答案:

答案 0 :(得分:0)

尝试在if ISSET行之前添加这些内容。

    global $wpdb;
    global $post;

所以看起来像这样:

    <?php

        global $wpdb;
        global $post;

if(isset($_POST['button_submit'])) {
    if (!empty($_POST['post_title'])) {
        $my_post = array(
            'post_title'    => $_POST['post_title'],
            'post_content'  => $_POST['post_content'],
            'post_type'  => 'team',
            'post_status' => 'publish',
            'post_author'  => get_current_user_id(),

        );

        // Insert the post into the database
        wp_insert_post( $my_post, true );
    } else {
        echo 'WTF BRO';
    }
}

}
?>

如果不起作用,请尝试使用以下命令以其他方式添加它:

$table_name = 'posts';    
$wpdb->insert($table_name, $my_post, $format=NULL);

答案 1 :(得分:0)

好吧,这终于是我自己的一个愚蠢的错误……post_type不是'team'而是'sp_team'。我有print_r get_post_types()来获取所有类型的帖子,并看到了...

非常感谢您的帮助,并祝您白天/夜晚都很好:)