J'aimerais créer un shortcode qui extraira des informations pour un message personnalisé et l'affichera dans une page ou un message normal.
Cas d'utilisation spécifique: j'ai un type de message personnalisé "Film" pour un site Web de festival de film. Les films sont affichés avec leur propre single-film.php, mais les propriétaires du site veulent parfois écrire un post ou une page qui mentionne un film en particulier, et souhaitent pouvoir extraire des extraits d'informations déjà saisies (par exemple: , Nom du film, informations de réservation, etc). Cela irait dans une "boîte" au bas de l'article, et j'aimerais leur faciliter la tâche en leur fournissant une sorte de code abrégé.
Comment pourrais-je m'y prendre? Des ressources/tutoriels recommandés pour me mettre sur la bonne voie? Quels pièges devrais-je connaître (par exemple, plusieurs boucles dans un message)?
Il existe d'excellents tutoriels sur les codes courts sur le Web et quelques bons exemples ici
mais juste pour vous aider à démarrer:
add_shortcode('film_q', 'film_shortcode_query');
function film_shortcode_query($atts, $content){
extract(shortcode_atts(array( // a few default values
'posts_per_page' => '1',
'post_type' => 'film',
'caller_get_posts' => 1)
, $atts));
global $post;
$posts = new WP_Query($atts);
$output = '';
if ($posts->have_posts())
while ($posts->have_posts()):
$posts->the_post();
$out = '<div class="film_box">
<h4>Film Name: <a href="'.get_permalink().'" title="' . get_the_title() . '">'.get_the_title() .'</a></h4>
<p class="Film_desc">'.get_the_content().'</p>';
// add here more...
$out .='</div>';
/* these arguments will be available from inside $content
get_permalink()
get_the_content()
get_the_category_list(', ')
get_the_title()
and custom fields
get_post_meta($post->ID, 'field_name', true);
*/
endwhile;
else
return; // no posts found
wp_reset_query();
return html_entity_decode($out);
}
et pour l'utiliser entrez dans n'importe quel post/page:
[film_q p=FILM_POST_ID]
remplacez simplement FILM_POST_ID par l'ID de publication de film réel.
J'espère que cela t'aides
Essayez de commencer par ce tutoriel .
Dans la fonction de rappel, effectuez un custom_query (ou utilisez get_post ) pour la publication et extrayez uniquement les valeurs pertinentes pour vous. (I.e: titre, extrait ...)
exemple shorcode
[film id=10]
Utilisez id dans votre fonction pour récupérer le contenu du film.