pskli

WordPress & wp_insert_post : créer du contenu dynamiquement

Mar 19th, 2013
1,272
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <?php
  2. /**
  3.  * Template Name: Formulaire de contact
  4.  */
  5.  
  6. get_header(); ?>
  7.  
  8. <div id="primary" class="site-content">
  9.     <div id="content" role="main">
  10.  
  11.         <?php
  12.  
  13.         /*
  14.          * Si envoyé, analyser les données du formulaire et les stocker dans des variables
  15.          */
  16.  
  17.         if (isset($_POST['submit'])) {
  18.             $name = htmlspecialchars($_POST['myname']);
  19.             $email = sanitize_email($_POST['myemail']);
  20.             $message = wp_kses_post($_POST['mymessage']);
  21.  
  22.         /*
  23.          * Créer un post de type 'contact'
  24.          */
  25.  
  26.         $contact_post = array(
  27.             'post_title' => $name . ' | ' . $email,
  28.             'post_content' => $message,
  29.             'post_type' => 'contact',
  30.             'post_status' => 'publish'
  31.         );
  32.  
  33.         if (wp_insert_post($contact_post)) echo 'Votre message a bien été enregistré.<br>';
  34.         else echo 'Erreur d\'enregistrement du message';
  35.  
  36.         /*
  37.          * Affichage basique du formulaire
  38.          */
  39.  
  40.         } else { ?>
  41.  
  42.             <form action="<?php echo the_permalink(); ?>" method="post">
  43.                 <label for="name">Nom complet</label>
  44.                 <input type="text" name="myname" id="name" placeholder="Votre nom" />
  45.                 <hr>
  46.                 <label for="email">Adresse e-mail</label>
  47.                 <input type="email" name="myemail" id="email" placeholder="Votre e-mail" />
  48.                 <hr>
  49.                 <label for="message">Message</label>
  50.                 <textarea cols="50" rows="10" name="mymessage" id="message" placeholder="Votre message..."></textarea>
  51.                 <br>
  52.                 <input type="submit" name="submit" value="Envoyer votre message" />
  53.             </form>
  54.  
  55.         <?php } ?>
  56.  
  57.     </div><!-- #content -->
  58. </div><!-- #primary -->
  59.  
  60. <?php get_sidebar(); ?>
  61. <?php get_footer(); ?>
RAW Paste Data