Ce guide fournit un processus étape par étape pour migrer le contenu de votre site WordPress vers le Sonata Extra Bundle.
Étape 1 : Importation de contenu
Commencez par importer votre contenu WordPress en utilisant la commande suivante
bin/console sonata-extra:wordpress-importer --url https://www.domain.com --user wordpressUser --token "[APPLICATION_PASSWORD]"
Pour des instructions détaillées sur cette commande, consultez le guide dédié : Commande d'importation WordPress
Après avoir exécuté cette commande, vos catégories, étiquettes et articles de WordPress devraient être importés avec succès.
Étape 2 : Consultation des articles
Vous pouvez maintenant consulter vos articles en utilisant les routes de blog fournies par Sonata.
Étape 3 : Configuration de la traduction
Pour traduire du contenu en plusieurs langues, suivez ces étapes :
- Configurez votre compte OpenAI :
Se référer à la Documentation de l'API de traduction pour configurer votre compte OpenAI. Alternativement, vous pouvez utiliser votre fournisseur personnalisé ou choisir de ne pas utiliser d'API de traduction.
- Configuration de l'API :
Mettez à jour la configuration du pack Sonata Extra pour inclure les paramètres de votre API de traduction :
partitech_sonata_extra:
translation_api:
translate_on_create_page: true
translate_on_create_translation: true
default_provider: open_ai
providers:
open_ai:
class: Partitech\SonataExtra\Translation\Provider\OpenAiProvider
api_key: '%open_ai_api_key%'
model: '%open_ai_api_model%'
max_token_per_request: 200
Définissez open_ai_api_key et open_ai_api_model dans votre fichier .env.
Choisissez un modèle pris en charge par le fournisseur configuré, puis validez la qualité, le coût et la taille maximale des requêtes sur un échantillon représentatif. Évitez de figer dans le guide un nom de modèle susceptible de disparaître.
Activer la traduction automatique :
Ajoutez l’attribut #[Translatable] et importer Partitech\SonataExtra\Attribute\Translatable dans les propriétés de votre entité pour la traduction automatique.
Étape 4 : Traduction du contenu
Exécutez les commandes suivantes pour traduire votre contenu (vous pouvez vouloir ajouter vos propres services) :
bin/console sonata:extra:translate-content --site=2,3,4,5 --reference-site=1 --service="sonata.classification.admin.category"
bin/console sonata:extra:translate-content --site=2,3,4,5 --reference-site=1 --service="sonata.classification.admin.tag"
bin/console sonata:extra:translate-content --site=2,3,4,5 --reference-site=1 --service="Partitech\SonataExtra\Admin\ArticleAdmin"
bin/console sonata:extra:translate-content --site=2,3,4,5 --reference-site=1 --service="Partitech\SonataExtra\Admin\EditorAdmin"
bin/console sonata:extra:translate-content --site=2,3,4,5 --reference-site=1 --service="sonata.page.admin.page"
Remarque : Si le processus de traduction se bloque, il suffit de relancer le processus, et il reprendra là où il s'était arrêté.
Étape 5 : configuration du menu
Si vous n'avez pas encore configuré votre menu, il est conseillé de dupliquer d'abord le menu par défaut.
-
Dupliquer le menu : Dupliquez manuellement le menu par défaut. Notez que la structure arborescente ne sera pas conservée et doit être réorganisée manuellement.
-
Correction des URL du menu :
Exécutez la commande suivante pour corriger les URL des éléments de menu :
bin/console sonata:extra:fix-menu-url --menu=6
Cette commande ajustera les URL pour correspondre aux pages localisées dans SonataPage.
Étape 6 : Création de snapshots
Enfin, créez des instantanés de vos pages avec la commande :
bin/console sonata:page:create-snapshots
Sécuriser la bascule

Figez une fenêtre de contenu, rejouez l’import sur une copie récente et préparez une table de redirections entre anciennes et nouvelles URL. La recette doit couvrir les volumes, les médias, les auteurs, les métadonnées SEO et les liens internes avant la bascule DNS.