web-dev-qa-db-fra.com

Nouveau plugin: la mise à jour suivante pousse une copie en tant que révision

J'ai beaucoup travaillé avec l'édition de messages après leur publication. Je sais que je peux appuyer sur update sur le message pour le mettre à jour, mais je souhaite que le parcours des révisions soit accessible aux utilisateurs.

Je pensais donc à un plugin. J'ai consulté http://wordpress.org/extend/plugins/duplicate-post/ , qui crée une autre copie sur un nouveau permalien. C’est un bon point de départ, mais je me demande si la fonctionnalité pourrait être inversée.

Fonctionnalité: quand une publication est mise à jour (à chaque nouvelle mise à jour, quelle que soit sa taille), le nouveau contenu mis à jour est transféré dans le permalien de publication d'origine, et l'ancienne publication est transférée dans un nouveau permalien avec un suffixe du nombre de mises à jour.

Exemple: Mon article s'appelle hello-world. Je le publie et le permalien devient http://monsite.com/hello-world . J'ai besoin de l'éditer, alors je vais aux articles et édite la page. Je clique sur mettre à jour, et l'article hello-world d'origine est copié et publié sous hello-world-draft-1, et l'article nouvellement mis à jour prend la place du message hello-world d'origine.

De cette manière, toute personne ayant un lien vers la publication en verrait toujours la version la plus récente, mais tous les brouillons seraient consultables par tout utilisateur en visitant /hello-world-draft-X, où "X" correspond à toutes les mises à jour effectuées qui ne sont pas les publications principales. limace.

Je pense que c'est quelque chose comme être capable de montrer des révisions à l'utilisateur? Commentaires et suggestions sont les bienvenus.

Merci.

Mise à jour: Ce plugin semble bon mais ne fonctionne que sur les fichiers .doc téléchargés et non sur les publications. http://wordpress.org/extend/plugins/wp-document-revisions/

2
davebowker

Votre question précise que vous recherchez des "suggestions". Cette réponse appartient donc à cette catégorie plutôt qu'à la catégorie "code de travail".

Je vais commencer par dire que je ne sais pas si c'est une bonne idée. Vous allez multiplier la taille de votre base de données. Maintenant, cela m'est échappé, si vous voulez continuer, voici mes pensées.

Ne pas écrire de nouveaux messages pour vos "révisions". Vous vous retrouverez avec chacun d'entre eux dans les flux RSS, la publication, l'index, les panneaux de backend, etc. Ce serait un désastre et il vous faudrait beaucoup de travail pour les cacher.

WordPress a déjà des révisions, et toutes les questions ci-dessus ont déjà été résolues en noyau. Utilisez les à votre avantage.

Indiquez à WordPress de conserver toutes vos révisions.

define( 'WP_POST_REVISIONS', -1);

C’est supposé être la valeur par défaut, mais j’aurais choisi cette option au cas où un thème ou un plugin déciderait de penser pour vous. L'utilisation des révisions existantes permettra également de résoudre le problème de l'augmentation de la taille de votre base de données. À moins que vous n'ayez désactivé les révisions, vous avez déjà ce contenu dans la base de données./

Maintenant, vous devez savoir comment afficher la révision.

wp_get_post_revisions($post_id) (en supposant que $post_id est défini sur la publication parent de la révision) devrait vous permettre d'obtenir vos révisions, que vous pourrez ensuite utiliser pour créer une liste ou un affichage complet de la publication. .

Pour les affichages "individuels", vous devriez pouvoir transmettre à single.php un paramètre ?rev=<post_id> ou même un ?rev=<revision_number> puisque WordPress enregistre post_name pour les révisions sous la forme <parent_post_id>-revision-<revision_number>, avec -<revision_number> absent de la première révision.

Ce sont mes "commentaires et suggestions" comme demandé.

1
s_ha_dum