Un code simple à ajouter à votre fichier functions.php pour republier réguliÚrement et automatiquement vos articles ou tout autre post type de votre site WordPress. Il existe également une extension WordPress pour ceux qui n'aiment pas mettre les mains dans le code.
Republier vos articles automatiquement sans plugin sur WordPress
Le fonctionnement de ce code PHP est simple. La premiĂšre partie du code permet d'ajouter un cron (ici un wp-cron plus prĂ©cisĂ©ment) qui se chargera dâexĂ©cuter une fonction Ă intervalle rĂ©gulier. La seconde partie du code, quant Ă lui, se compose d'une requĂȘte qui appelle le post le plus ancien et qui lui attribut la date du jour.
/**
* Link posts_republish() with a wp_cron and execute it daily
*/
if ( ! wp_next_scheduled( 'posts_republish_hook' ) ) {
wp_schedule_event( time(), 'daily', 'posts_republish_hook' );
}
add_action( 'posts_republish_hook', 'posts_republish' );
/**
* Change the last posts date to today's date
*/
function posts_republish() {
$args = array(
'post_type' => 'post',
'posts_per_page' => 1,
'order' => 'ASC',
);
$my_query = new WP_Query( $args );
while ( $my_query->have_posts() ) {
$my_query->the_post();
$update_post = array(
'ID' => get_the_id(),
'post_date' => date( 'Y/m/d H:i:s' ),
'post_date_gmt' => date( 'Y/m/d H:i:s' )
);
wp_update_post( $update_post );
}
wp_reset_postdata();
}
Par dĂ©faut, WordPress propose 3 intervalles de temps pour lâexĂ©cution des wp-cron :
- hourly : toutes les heures
- daily : tous les jours, c'est celui qui est utilisé ici
- twicedaily : tous les deux jours
Il est également possible de créer vos propres intervalles en procédant comme ci-dessous.
/**
* Custom Cron Recurrences
*/
function custom_cron_job_recurrence( $schedules ) {
$schedules['weekly'] = array(
'display' => 'Once weekly',
'interval' => 604800,
);
return $schedules;
}
add_filter( 'cron_schedules', 'custom_cron_job_recurrence' );
Ici, nous créons un nouvel intervalle dont l'identifiant sera "weekly", le nom affiché sera "Once weekly" et le délai entre chaque exécution sera de 604800 secondes, ce qui équivaut à 7 jours. Une fois ce code ajouter, vous pourrez alors utiliser l'intervalle "weekly" comme s'y s'agissait d'un des trois intervalles par défaut de WordPress (hourly, daily et twicedaily).
Republish Old Posts : le plugin WordPress qui republie vos article
Le plugin Republish Old Posts propose de nombreuses options comme conserver la date originale de l'article ou encore sélectionner les catégories des articles à republier. Cependant et à mon grand regret, elle ne fonctionne que sur les articles (posts) et ne permet donc pas de republier vos propres posts types.
Et si on veut republier lâintĂ©gralitĂ© des articles tous les 15 jours par exemple sans toucher Ă lâheure, cela serait possible ?
Merci Julien MA Jacob pour ce code.
Je me rĂ©ponds Ă moi-mĂȘme.
Mon site internet est un site vitrine donc la date de publication de mes articles nâa pas dâimpotence, par contre lâordre dans lesquels ils sâaffichent a une importance jâai donc cherchĂ© Ă modifier votre script afin de rafraĂźchir les dates de publication de tous les articles automatiquement tous les 14 jours afin de paraĂźtre dans les rĂ©sultats de recherche les personnes qui rĂšglent les paramĂštre de recherche de Google sur « moins dâun mois »
Pour cela il faut rĂ©cupĂ©rer le nombre dâarticle publiĂ©.
Puis faire une boucle qui va remonter le dernier article et faire cela autant de fois quâil y a dâarticle publiĂ©.
Toutefois tous les articles se retrouvent avec la mĂȘme date de publication et cela met la pagaille dans lâordre des articles.
Afin dâĂ©viter cela il faut faire une pose entre chaque boucle.
On obtient le code suivant.
Les articles conservent bien leur ordre, mais il y un « mais »
Pour la gestion du RGPD jâutilise le code « Inclure tarteaucitron.js » https://opt-out.ferank.eu/fr/
et pour les vidéos YouTube il faut remplacer le code
par
Hors WordPress a une fonction de correction de code automatique quâil effectue Ă chaque republication des articles automatiquement et il efface le code quâil estime incorrecte, les vidĂ©os sont donc retirĂ©s.
Ce problĂšme doit certainement affecter les personnes qui utilisent le code que vous avez fourni pour remonter pour remonter le dernier article.
La solution serait de dĂ©activer temporairement le formatage du code par wordpress lors de la rĂ©alisation de la boucle mais pour lâinstant je sĂšche.
Si vous avez une piste ou solution je suis preneur.