我正在开发一个前端界面来创建某种类型的帖子(与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,您正在寻找的页面已被移动或不再存在” 谢谢!
答案 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()来获取所有类型的帖子,并看到了...
非常感谢您的帮助,并祝您白天/夜晚都很好:)