NB : Faire une sauvegarde de votre thème, de votre fichier et/ou votre base de données avant d’ajouter ces fonctions tutoriels.

Créer un Shortcode Query Post WordPress
Intermédiaire
Hébergement Web Canada

Publié le : 24 juin 2016 - Modifié le : 18 janvier 2022

Temps de lecture : 1 minute, 39 seconds - 119 mots

Créer un Shortcode Query Post WordPress :
Dans ce tutoriel nous allons donc créer un Shortcode qui va englober et donner le résultat d’une requête WordPress.

Nous allons pour ça créer un add_shortcode qui va donc contenir en paramètre le nom du shortcode et le nom de la fonction.
Ici dans cet exemple, nous appelons par requête un post type vidéos classé par nombre de likes.

Nous avons edité en même temps dans le shortcode le get option si vous avez des options. Ensuite nous exécutons le new WP_Query.

<?php
// Creation du shortcode permettant de lister la liste des videos classées par nombre de likes
add_shortcode( 'viavideoslikes', 'via_videos_list_likes_shortcode' );
function via_videos_list_likes_shortcode( $atts ) {
	ob_start();
	$options = get_option('via_video_name');
	$query = new WP_Query( array(
		'post_type'            => 'viavideos',
		'meta_key'             => '_post_like_count',
		'orderby'              => 'meta_value_num',
        'order'                => 'DESC',
		'posts_per_page'       => -1,
		) );
	if ( $query-&gt;have_posts() ) { 
	?>
	
	
	<?php while ( $query->have_posts() ) : $query->the_post(); ?>

	
        // Afficher ici votre contenu dynamique dans vos contenants div


	<?php endwhile; wp_reset_postdata(); ?>
	<?php $myvariable = ob_get_clean();
	return $myvariable;
	}
}

Créer une page et afficher le shortcode de cette facon.

[viavideoslikes]

Ou dans une page template

<?php echo do_shortcode('[viavideoslikes]'); ?>

Laissez un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>