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 procĂ©dĂ© 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.