WordPress : Désactiver l’historique des articles
Attention, cet article a été déplacé dans les archives, donc le contenu peut ne plus être à jour. A vous de voir 🙂
Le passage à la nouvelle version de WordPress a causé un bug assez ennuyeux sur mon blog. Les permaliens vers mes articles étant du type https://darklg.me/[id de l’article]/[titre de l’article], la fonction historique des articles sauvegardait automatiquement une version à chaque fois que j’enregistrais. Donc cet article aura l’identifiant 93, alors que je n’ai pas rédigé plus de 40 articles ( oui, mon blog est récent ).
Si vous êtes dans mon cas, et que l’historique des articles ne sert qu’à surcharger votre base de données, suivez le guide :
- Ouvrez le fichier wp-settings.php dans votre éditeur favori
- recherchez la ligne suivante ( 443 chez moi ) :
$default_constants = array( 'WP_POST_REVISIONS' => true );
- Remplacez « true » par « false ».
- Enregistrez le fichier 😉
La fonction d’historique des articles devrait être désactivée, et WordPress un poil accéléré !
PS : Je ne critique pas dans cet article la fonctionnalité d’historique des articles, loin de là. Son utilité peut être non négligeable dans de nombreux cas, mais pas dans le mien, simplement 😉
PS2 : Thomas précise dans les commentaires qu’il est préférable d’inclure la ligne » define(’WP_POST_REVISIONS’,’0′); » dans le fichier wp-config.php.
En effet, ce dernier ne sera pas écrasé par une mise à jour. Bien vu 😉
Et comment peut on supprimer ce qui a déjà été mis dans l’historique ?
Merci de me repondre sur ellierazAThotmail.com
Je pense qu’il faut les supprimer directement sur la base de données … mais pas sûr 😉
De manière générale, il faut toujours éviter de modifier des fichiers du coeur d’un logiciel comme WordPress : en effet, à la prochaine mise à jour, quand tu devras écraser (allégrement) les anciens fichiers, je parie que tu ne te souviendras pas de toutes les micro-modifications que tu as faites au fil du temps 😉
Solution : ajouter la ligne suivante dans ton fichier wp-config.php (qui lui ne seras jamais écrasé) :
define(‘WP_POST_REVISIONS’,’0′);
D’après la doc, ça devrait suffir 🙂
Cordialement,
Thomas
Merci Thomas pour cette précision 🙂
J’ai appliqué l’astuce car ça ne me sert pas à grand chose non plus 😉 Merci à vous 2 🙂
DELETE FROM wp_posts WHERE post_type = « revision »;
devrait faire un delete sélectif dans la base…
Bonjour,
moi j’ai installé Amazing Grace et je n’ai pas de page intitulée wp-settings.php, mais j’ai une page function.php et je ne vois pas de ligne correspondante, alors je laisse tomber. Dommage car l’historique de mon blog est énorme, car je ne m’étais pas rendu compte qu’à chaque fois que j’enregistrai, je surchargeais ma base de données.
Merci quand même pour tes explications qui seront bien utiles à beaucoup de gens.
Bonne semaine.
Bises, Isabelle
@Isabelle
Tu devrais essayer avec le fichier wp-config.php, comme l’a expliqué Thomas un peu plus haut 😉
Attention, ce fichier se trouve à la racine de ton blog, pas dans le dossier de ton thème 😉
Merci Darklg 🙂
Dans mon fichier wp-config qui est à la racine de mon site je n’ai pas grand chose, une dizaine de lignes avec surtout des commentaires. Voici ce qui vient après Réglages Mysql :
[..] édité pour confidentialité des réglages 😉
colle « define(‘WP_POST_REVISIONS’,’0′); » sans les guillemets tout en bas de ton fichier wp-config.php .
C’est tout ! 😉
J’ai ce bout de code qui s’affiche en haut de page de mon blog : define(’WP_POST_REVISIONS’,’0′);
et quand j’enregistre mon travail une page blanche arrive avec le même bout de code en haut de page, je suis alors obligée de revenir en arrière à l’aide du bouton de mon navigateur. Il s’emble que malgré cela le travail est été enregistré.
1/ Les apostrophes ont elles bien été remplacées par des apostrophes conventionnelles ?
2/ En haut ou en bas du fichier wp-config.php, c’est la seule manip que je connaisse 😉
Je colle le code tel que je l’ai mis sur le précédent commentaire, rien de plus et rien de moins. Quand je le colle après ?>, il s’affiche en haut des pages de mon site, quand je le colle avant c’est une page blanche que j’obtiens de l’accueil de mon blog.
C’est le bazar pour moi …
Merci de ton soutien.
Isabelle
La subtilité, c’est qu’il faut remplacer les apostrophes que tu copies colles depuis le commentaire ( ‘ ) par des apostrophes de ton clavier ( Touche 4 ).
Wordpress les traduit tout seul, ça induit en erreur 😉
J’ai changé les apostrophes et effectivement ça ne s’affiche plus en haut, mais un historique est toujours créé qu’en j’enregistre.
Etrange. je ne vois pas comment ça peut arriver si tu as appliqué tous les réglages donnés sur cet article.
Je ne peux hélas pas t’aider plus que ça =/
Merci quand même, tu es bien sympa.
Bonne après-midi et à bientôt.
Bises, Isabelle
En complément de l’info d’Ellie:
> DELETE FROM wp_posts WHERE post_type = “revision”;
> devrait faire un delete sélectif dans la base…
Il faut en plus propager les suppressions aux autres tables, comme suit (sinon, il reste des scories):
DELETE a,b,c
FROM wp_posts a
LEFT JOIN wp_term_relationships b ON (a.ID = b.object_id)
LEFT JOIN wp_postmeta c ON (a.ID = c.post_id)
WHERE a.post_type = ‘revision’
@Entropie :
En effet, merci pour la précision 🙂
J’ai pour ma part atteint 102% de capacité pour ma base sql aujourd’hui. Il va sans dire que rien ne va plus. J’ai donc tenté de supprimer l’historique, soit ces fichues révisions, mais j’ai peut-être fait les choses à l’envers.
A vrai dire j’ai découvert dans un premier temps le code ajouté par entropie, je l’ai donc appliqué sans le « DELETE FROM wp_posts WHERE post_type = “revision”; »
Je ne comprends à moitié rien au langage ici présent, donc j’ignore si c’est une erreur de ma part d’avoir privilégié l’execution du 2e avant celle du 1er.
Je suis sceptique parce que mon manager -hebergeur web ne m’a pas encore annoncé à l’heure qu’il est un regain d’espace libre.
J’ai bien tenté d’optimiser ma base mais je n’ai pas les droits (hebergeur gratuit impose ses restrictions).
Bref. Pensez-vous que j’ai tout fait dans les règles ou presque, ou qu’il va falloir que je réinitialise ma DB?
Merci d’avance 😉
@Reka La ligne de code permettra simplement d’effacer les articles en doublon, à l’état de « révision ». Donc aucun problème pour les articles actuellement en ligne.
WP Optimize aidera sûrement 🙂
http://wordpress.org/extend/plugins/wp-optimize/
Bonne astuce pour alléger un peu WordPress qui crée un historique qu’y n’est pas utile pour totu le monde 🙂 voici une complément
http://www.ya-graphic.com/2009/11/nettoyer-et-optimiser-la-base-de-donnees-wordpress/