NB : Faire une sauvegarde de votre thème, de votre fichier et/ou votre base de données avant d’ajouter ces fonctions tutoriels.
Publié le : 04 mars 2023 - Modifié le : 4 mars 2023
Temps de lecture : 4 minutes, 0 seconds - 128 mots
Dans ce tutoriel, nous allons créér un shortode permettant d’afficher les derniers articles ou type d’article.
Dans notre exemple, nous allons afficher les articles modifiés il y a moins de 15 jours.
Cependant, nous allons avant tout afficher les derniers articles publiés il y a moins de quinze jours. Ensuite, nous peaufinerons notre requête pour les articles modifiés.
Afficher les derniers articles publiés - de 15 jours
/**************************** Last Posts 15 days ********************************/
add_shortcode( 'lastaddoposts', 'addo_list_posts_publied' );
function addo_list_posts_publied(){
$date_range = strtotime ( '-15 day' );
// Custom WP query query
$args = array(
'post_type' => array('post'),
'post_status' => 'publish',
'order' => 'DESC',
'date_query' => array(
array(
'after' => array(
'year' => date('Y', $date_range ),
'month' => date('m', $date_range ),
'day' => date('d', $date_range ),
),
)
)
);
$query = new WP_Query( $args );
echo '<ul style="padding:0">';
if ( $query->have_posts() ) {
while ( $query->have_posts() ) {
$query->the_post();
echo '<div class="col-md-3" style="display:inline-block;">';
echo '<li style="position:relative">';
echo '<a style="display:block;background-color: #490b3d;padding: 10px 25px;color: white;" href="' . get_the_permalink() . '">';
echo the_title();
echo'</a>';
echo '<span style="padding:0px 5px;background:#f1b814;color:white;position:absolute;top:-10px;right:0;font-size:11px">' . get_the_time('d-m-Y') . '</span>';
echo '</li>';
echo '</div>';
}
}
else {
echo 'Il n'y a eu aucune publication ces dernières semaines';
}
wp_reset_postdata();
echo '</ul>';
}Shortcode dans les pages
[lastaddoposts]
Shortcode dans les templates
<?php echo do_shortcode( '[lastaddoposts]' ); ?>
Nous allons maintenant corriger notre requête et afficher les derniers articles modifiées il y a moins de quinze jours.
Afficher les derniers articles modifiés - de 15 jours
/**************************** Last Posts modified 15 days ********************************/
add_shortcode( 'postsaddomodified', 'addo_list_posts_modified' );
function addo_list_posts_modified() {
// query args
$args = array(
'posts_per_page' => '10',
'post_type' => 'post',
'post_status' => 'publish',
'orderby' => 'modified',
'order' => 'DESC',
'ignore_sticky_posts' => '1',
'caller_get_posts' => 1,
'date_query' => array(
'relation' => 'OR',
array(
'column' => 'post_date',
'after' => '-1 days'
),
array(
'column' => 'post_modified',
'after' => '-15 days'
)
)
);
// query
$updated = new WP_Query($args);
?>
<ul style="padding:0">
<?php if ( $updated->have_posts() ) : ?>
<?php while ( $updated->have_posts() ) : $updated->the_post(); ?>
<div class="col-md-3" style="display:inline-block;padding:0px">
<li style="position:relative">
<a style="display:block;background-color: #490b3d;padding: 10px 25px;color: white;margin:0 0 10px 0" href="https://famillebreboin.ca/photos/">
<?php the_title(); ?>
</a>
<span style="padding:0px 5px;background:#f1b814;color:white;position:absolute;top:-10px;right:0;font-size:11px">
<?php get_the_time('d-m-Y'); ?>
</span>
</li>
</div>
<?php endwhile; ?>
<?php wp_reset_postdata(); ?>
<?php else : ?>
<?php echo 'Il n'y a eu aucun album mis à jour'; ?>
<?php endif; ?>
</ul>
<?php }Shortcode dans les pages
[postsaddomodified]
Shortcode dans les templates
<?php echo do_shortcode( '[postsaddomodified]' ); ?>