wp_insert_post () возвращает ошибку 404 и не создает страницу - PullRequest
0 голосов
/ 09 мая 2020

Я занимаюсь разработкой внешнего интерфейса для создания определенного типа сообщений (команды со 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 голосов
/ 09 мая 2020

Хорошо, это, наконец, моя глупая ошибка ... Post_type был не «team», а «sp_team». У меня есть print_r и get_post_types (), чтобы получить все типы сообщений, и я увидел, что ...

Спасибо всем за помощь и хорошего дня / ночи :)

0 голосов
/ 09 мая 2020

Попробуйте добавить их перед строкой 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...