09.06.2015 Views

WordPress 3

  • No tags were found...

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Construire une extension évoluée<br />

395<br />

Notre shortcode est entièrement stocké dans le fichier classifieds.shortcodes.php et se<br />

déclenche dès le chargement de ce dernier grâce à la méthode add_shortcode() :<br />

add_shortcode('classified_submit_form', 'classified_submit_form');<br />

Le premier argument définit le shortcode lui-même, tandis que le second pointe vers la fonction<br />

qui produira le contenu généré par le shortcode. Que voici, justement :<br />

function classified_submit_form() {<br />

$form = '';<br />

if ( is_user_logged_in() ) {<br />

$form .= '';<br />

$form .= ' ' . __( 'Classified\'s title',<br />

'simpleclassifieds' ) . '';<br />

$form .= ' ';<br />

$form .= ' ';<br />

$form .= ' ' . __( 'Classified\'s main text',<br />

'simpleclassifieds' ) . '';<br />

$form .= ' <br />

';<br />

$form .= ' ';<br />

$form .= ' ';<br />

$form .= wp_nonce_field( 'new-post' );<br />

$form .= '';<br />

} else {<br />

$form = '' . __('Only logged-in users can post new<br />

classified ads.', 'simpleclassifieds') . '';<br />

}<br />

return $form;<br />

}<br />

Somme toute, un formulaire tout ce qu’il y a de plus classique. Nous vérifions avant toute<br />

chose que l’utilisateur est effectivement connecté, puis nous créons les champs nécessaires :<br />

titre et contenu, soit balise INPUT et balise TEXTAREA. Il ne faut pas oublier de générer le<br />

champ nonce avec wp_nonce_field(), sans quoi le formulaire ne sera pas pris en compte<br />

par <strong>WordPress</strong>.<br />

Parfait, notre page contient un formulaire, mais maintenant il faut que <strong>WordPress</strong> traite<br />

les données envoyées via celui-ci. Pour ce faire, nous mettons en place une fonction qui<br />

sera déclenchée par l’action "template_redirect". Cette action se déclenche juste à la fin du<br />

fichier modèle en cours. Elle est généralement utilisée pour mettre en place une redirection...<br />

add_action( 'template_redirect', 'classified_submit_code' );<br />

L’action appelle une fonction qui prendra en charge le traitement des données envoyées via<br />

le formulaire de notre shortcode :<br />

customer 27921 at Fri Mar 11 19:29:26 +0100 2011<br />

Propriété de Albiri Sigue

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!