<?php $submitted = $_POST['submit']; $post-title= $_POST['post_title']; $post-content= $_POST['post_content']; $new_post = array( 'post_title' => '$post-title', 'post_content' => '$post-content', 'post_status' => 'publish', 'post_author' => $user_ID, ); if(isset($submitted)){ wp_insert_post($new_post); } ?> <form method="post" action=" "> <input type="text" name="post_title" size="45" id="input-title"/> <textarea rows="5" name="post_content" cols="66" id="text-desc"></textarea> <input type="hidden" name="cat" value="7,100"/> <input class="subput round" type="submit" name="submit" value="Post"/> </form>
Я тестировал его без формы, и он работал нормально. но для somereason я не могу заставить его работать с формой. есть идеи?
также, что должно пойти в действие для формы?
Спасибо за помощь.
Это должно сработать.
<?php if(isset($_POST['new_post']) == '1') { $post_title = $_POST['post_title']; $post_category = $_POST['cat']; $post_content = $_POST['post_content']; $new_post = array( 'ID' => '', 'post_author' => $user->ID, 'post_category' => array($post_category), 'post_content' => $post_content, 'post_title' => $post_title, 'post_status' => 'publish' ); $post_id = wp_insert_post($new_post); // This will redirect you to the newly created post $post = get_post($post_id); wp_redirect($post->guid); } ?> <form method="post" action=""> <input type="text" name="post_title" size="45" id="input-title"/> <?php wp_dropdown_categories('orderby=name&hide_empty=0&exclude=1&hierarchical=1'); ?> <textarea rows="5" name="post_content" cols="66" id="text-desc"></textarea> <input type="hidden" name="new_post" value="1"/> <input class="subput round" type="submit" name="submit" value="Post"/> </form>
Если ввод с именем new_post и значением 0, то добавьте сообщение. Для формы не требуется никаких действий, но вы должны оставить часть PHP в верхней части заголовка.
Да, это возможно и очень легко выполнить. Вот вся документация, которую вы должны прочитать о wp_insert_post
оставьте действие формы пустым, оно будет передавать данные формы из точки входа приложения в текущий адрес в адресной строке
<form method="post" action="">
благодаря