2010-12-01 4 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> 

Je l'ai testé avec la forme et il a bien fonctionné. mais pour une raison quelconque, je ne peux pas sembler l'obtenir pour travailler avec la forme. des idées?wp_insert_post avec un formulaire

aussi ce qui est supposé aller dans l'action pour la forme?

merci pour l'aide.

Répondre

8

Cela devrait fonctionner.

<?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> 

Si l'entrée avec le nom new_post et la valeur de 0 puis ajouter le poste. Aucune action n'est requise pour le formulaire, mais vous devez conserver la partie PHP en haut de l'en-tête.

+0

je l'ai essayé sur index.php et cela ne fonctionne pas. rien n'est entré dans la base de données. hmmm merci beaucoup – andrewk

+0

Je vous ai dit, gardez la partie op PHP, en haut du fichier header.php. Cela fonctionne à 100%, j'ai testé en ce moment. –

+0

merci pour l'aide @Vlad .. je ne sais pas pourquoi .. il ne le fait pas. mais je vais regarder plus en elle .. je l'ai fait tout ce que vous m'a dit .. merci encore – andrewk

0

laisser à l'adresse actuelle dans la barre d'adresse

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

Merci

1

Oui, cela est possible et très facile à réaliser l'ébauche de l'action sous forme signifie qu'il coulera des données de formulaire à partir du point d'application d'entrée. Voici toute la documentation dont vous avez besoin de lire à propos de wp_insert_post

Questions connexes