Convert Post ↔ Page

Extension WordPress permettant de convertir un article en page et une page en article en un clic.

Fonctionnalités

Fonctionnalité Description
Row action Lien « Convertir en page / article » dans la liste des articles et pages
Metabox Bouton dans l’éditeur classique et Gutenberg (panneau latéral)
Actions groupées Convertir plusieurs articles/pages en une seule opération
Confirmation Boîte de dialogue avant chaque conversion
Sauvegarde Les données spécifiques (catégories, template…) sont sauvegardées en meta
Notices Messages de succès/erreur après conversion

Installation

  1. Copier le dossier convert-post-page/ dans wp-content/plugins/
  2. Activer l’extension depuis Extensions → Extensions installées

Comment ça marche

Article → Page

  • L’article est converti en page (post_type = page)
  • Les catégories et tags sont détachés (ils n’existent pas pour les pages par défaut)
  • Le template par défaut est assigné
  • Les données originales (catégories, tags) sont sauvegardées dans la meta _cpp_last_conversion_backup

Page → Article

  • La page est convertie en article (post_type = post)
  • Les attributs de page (template, page parent, ordre) sont réinitialisés
  • Si aucune catégorie n’est assignée, la catégorie par défaut est utilisée
  • Les données originales (template, hiérarchie) sont sauvegardées

Hooks disponibles

// Déclenché après une conversion réussie
do_action( 'cpp_after_convert', $post_id, $target_type, $old_type );

Exemple d’utilisation :

add_action( 'cpp_after_convert', function( $post_id, $new_type, $old_type ) {
    // Votre logique personnalisée
    error_log( "Post $post_id converti de $old_type vers $new_type" );
}, 10, 3 );

Permissions

Seuls les utilisateurs ayant la capacité edit_post sur un contenu peuvent le convertir (éditeurs, administrateurs).

Structure des fichiers

convert-post-page/
├── convert-post-page.php      ← Fichier principal (en-tête, hooks globaux)
├── includes/
│   ├── class-converter.php    ← Logique de conversion + AJAX handler
│   ├── class-row-action.php   ← Liens dans les listes admin
│   ├── class-metabox.php      ← Metabox éditeur
│   └── class-bulk-action.php  ← Actions groupées
├── assets/
│   ├── admin.css              ← Styles administration
│   └── admin.js               ← Confirmation + AJAX côté client
└── README.md

Compatibilité

  • WordPress 5.5+
  • PHP 7.4+
  • Compatible éditeur classique et Gutenberg