2010-12-01 15 views
3
<?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のために私はそれがフォームで動作するように感じることはできません。何か案は?wp_insert_post with a form

また、フォームのアクションには何が必要ですか?

ありがとうございました。

答えて

8

これは動作するはずです。

<?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の部分はヘッダーの上部に置いてください。

+0

私はindex.phpで試してみましたが動作しません。何もデータベースに入りませんでした。うーんおかげで非常に多くの – andrewk

+0

私はheader.phpのファイルの先頭に、PHPのOP部分を維持し、あなたに言いました。これは100%動作し、私は今テストしました。 –

+0

助けてくれてありがとう@Vlad ..私はなぜそれがやっていないのか分かりません。しかし、私は、おかげで再び – andrewk

0

はフォームアクションのブランクは、それがはい、それが可能と達成するのは非常に簡単ですアドレスバーに、現在のURLへのアプリケーションのエントリポイントから

<form method="post" action=""> 

おかげ

1

をフォームデータを流れます意味のまま。ここにあなたが読む必要があるすべてのドキュメントです