...
| Remarque |
|---|
Documentation en cours de rédaction / reconstruction |
- Installation des plugins nécessaires
- ACF => lien web
- Polylang => lien web
- WPGraphQL => lien web
- WPGraphQL for ACF => lien web
- WP GraphQL Polylang => lien vers le fichier .zip sur github
- Multi Custom Types => fichier .zip à importer
- Réglages
- Général
- GraphQL
- Langues
- Rédaction d'un contenu multilingue
- GraphQL
- Création compte GraphQL en lecture seule + création d'un token d'accès
- Exemple de requête
- Pour aller plus loin
- Création d'un nouveau custom type => plugin Multi Custom Types
- Création d'un nouveau custom field => plugin Multi Custom Types
- Ajouter des champs traduisibles => plugin Multi Custom Types
Installation locale
La version fournie avec Multi permet une installation locale rapide avec Docker.
TODO:
- Rédaction d'un contenu multilingue
Installation locale
La version fournie avec Multi permet une installation locale rapide avec Docker.
| Bloc de code | ||
|---|---|---|
| ||
services:
wordpress-db:
container_name: wordpress-db
image: bitnami/mariadb:latest
volumes:
- ./wp-data/mariadb_data:/bitnami/mariadb
environment:
MARIADB_ROOT_PASSWORD: rootpassword
MARIADB_DATABASE: wordpress
MARIADB_USER: wordpress
MARIADB_PASSWORD: wordpress
ports:
- '3306:3306'
networks:
- wordpress-network
wordpress | ||
| Bloc de code | ||
version: "3.7" services: wordpress-db: container_name: wordpress-db image: mysql:8.0bitnami/wordpress:latest restart: unless-stopped ports: - '33069090:33068080' volumesnetworks: - './wp-data/mysql-data:/var/lib/mysql'wordpress-network environment: command: mysqld --default-authentication-plugin=mysql_native_password networks: # Variables spécifiques à Bitnami WordPress WORDPRESS_BLOG_NAME: - wordpress"Mon Blog" restart: on-failure environment: WORDPRESS_USERNAME: admin MYSQLWORDPRESS_DATABASEPASSWORD: 'wordpress'password MYSQLWORDPRESS_USEREMAIL: 'wordpress'admin@example.com MYSQLWORDPRESS_BLOG_PASSWORDURL: 'wordpress'http://localhost:9090 MYSQLWORDPRESS_ROOTSKIP_PASSWORDINSTALL: 'wordpress' wordpress: ${WORDPRESS_SKIP_INSTALL:-no} containerWORDPRESS_TABLE_namePREFIX: wordpresswp_ image WORDPRESS_INSTALL_LOCALE: wordpress restart: on-failure'fr_FR' # Propre au script init-wordpress.sh ports: # Connexion à la base - '9090:80'de données networks: WORDPRESS_DATABASE_HOST: wordpress-db - wordpress environment: WORDPRESS_DATABASE_PORT_NUMBER: 3306 WPWORDPRESS_ENVIRONMENTDATABASE_TYPEUSER: 'local'wordpress WORDPRESS_DBDATABASE_HOSTPASSWORD: wordpress-db WORDPRESS_DBDATABASE_USERNAME: 'wordpress' WORDPRESS_DB_PASSWORD: 'wordpress'# Variables supplémentaires WORDPRESS_EXTRA_DB_NAME: 'wordpress'WP_CONFIG_CONTENT: | WORDPRESS_DB_PORT: '3306' volumes: define('WP_ENVIRONMENT_TYPE', 'local'); define('WP_DEBUG_DISPLAY', false); # Sécurité - ./wp-data/wordpress:/var/www/html supplémentaire avec un serveur proxy Nginx # - ./uploads.iniNGINX_UPLOADS_PROXY: 'http:/usr/local/etc/php/conf.d/uploads.ini networks: /localhost:8080' # wordpress: |
Pour monter l'image Docker, il vous suffit de vous placer dans le dossier env/local/docker/wordpress et de lancer la commande :
| Bloc de code |
|---|
$ docker compose up -d |
Votre instance de Wordpress devrait alors être accessible à l'adresse : http://localhost:9090
Installation et configuration des extensions nécessaires
La gestion des extensions se situe au niveau du menu Extensions dans le menu latéral gauche.
| Info |
|---|
En premier lieu, vous pouvez supprimer les 2 extensions présentes par défaut : Akismet et Hello Dolly |
Installer et configurer Pods
Par défaut, Wordpress ne propose que 4 types par défaut : Articles, Médias, Pages et Commentaires. On ne peut pas y toucher n'y même y ajouter des champs.
Pods est donc l'extension qui nous permet de créer des collections personnalisées dans Wordpress.
Lien vers le plugin : https://fr.wordpress.org/plugins/pods/
Dans la section Extensions de Wordpress, faire Ajouter une extension, dans le champs Rechercher des extensions, saisir "Pods", localiser l'extension puis installez la et activez la.
Une fois le plugin installé et activé, rendez vous dans Pods Admin > Composants puis désactivez le composant Templates. Étant donné que nous allons faire une utilisation headless de Wordpress, cette fonctionnalité ne nous sera pas utile.
De même, au niveau de Pods Admin > Réglages vous pouvez passer la fonctionnalité Dynamic Features à Disable All Dynamic Features in Pods (penser à enregistrer la modification avec le bouton en bas de page)
Installer et configurer Polylang
Polylang est le plugin qui va nous permettre de proposer des traductions dans nos collections personnalisées avec Pods.
Lien vers le plugin : https://fr.wordpress.org/plugins/polylang/
Dans la section Extensions de Wordpress, faire Ajouter une extension, dans le champs Rechercher des extensions, saisir "Polylang", localiser l'extension puis installez la et activez la.
Une fois le plugin installé et activé, il va vous demander de définir les langues nécessaires à votre application. Sélectionnez les langues dont vous avez besoin et cliquez sur le bouton Ajouter une nouvelle langue
Cliquez sur Continuer. N'autorisez pas la traduction des médias et choisissez le français comme langue des contenus présents dans le CMS.
L'installation est terminée, vous pouvez revenir à l'administration en cliquant sur le bouton Retour au tableau de bord.
Installer et configurer WPGraphQL
TODO
Liens vers le plugin : https://wordpress.org/plugins/wp-graphql/
Installer et configurer WPGraphQL Polylang
TODO
| Remarque |
|---|
Attention, le plugin n'est pas présent dans le Market Place de Wordpress. Il faut télécharger le fichier .zip depuis les sources Github du plugin |
Liens vers le plugin : https://github.com/valu-digital/wp-graphql-polylang
Installer et configurer Multi Custom Config
TODO
| Avertissement |
|---|
Ancienne documentation de Tristan (en cours de restructuration) |
Installation
WordPress peut être déployé avec Docker, voici un exemple d'un docker-compose (pour plus d'informations sur le paramétrage, vous pouvez vous référer à la documentation WordPress) :
L'exemple utilise une base de données Mysql et WordPress se lance sur le port 9090 que vous pouvez modifier dans la configuration.
| Bloc de code | ||
|---|---|---|
| ||
version: '3.1'
services:
wordpress:
image: wordpress
restart: always
ports:
- 9090:80
environment:
WORDPRESS_DB_HOST: db
WORDPRESS_DB_USER: exampleuser
WORDPRESS_DB_PASSWORD: examplepass
WORDPRESS_DB_NAME: exampledb
volumes:
- ./wordpress:/var/www/html
db:
image: mysql:8.0
restart: always
environment:
MYSQL_DATABASE: exampledb
MYSQL_USER: exampleuser
MYSQL_PASSWORD: examplepass
MYSQL_RANDOM_ROOT_PASSWORD: '1'
volumes:
- ./db:/var/lib/mysql
|
Import de la structure de données
L'import de structure de données se fait au niveau du plugin ACF dans l'onglet Outils :
Ensuite, il suffit de sélectionner le fichier à importer :
Import des données d'exemple
Quand les collections sont importées, on peut utiliser la fonction d'import de WordPress pour importer les données :
Puis importer les données pour chaque collection en suivant les instructions :
Import des images
Dans l'onglet Médias, on peut importer ou supprimer des images. Pour les collections qui nécessitent des images, on a la possibilité de directement importer ou de sélectionner une image.
Les extensions
Pour le bon fonctionnement du projet, on a besoin de plusieurs extensions :
- Advanced Custom Fields (ACF) : permet de créer des collections complexes et de les exposer via des API
- Code Snippets : (optionnel) permet de configurer facilement et rapidement des webhooks suivant le besoin du projet
ACF
Dans l'application, on utilise deux fonctionnalités principales de l'extension ACF :
- Type de publication : permet de créer des collections et de les configurer (accès API, droits utilisateurs, etc)
- groupes de champs : permet de définir les champs qui composent une collection
Type de publication
Un type de publication se compose d'un libellé au pluriel et au singulier, ainsi qu'une clé. Pour accéder à la collection dans le menu, il faut la rendre publique.
Dans les réglages avancés, on va garder cochés seulement les éléments présents ci-dessous :
C'est également dans les réglages avancés que l'on peut changer les accès utilisateurs et certaines configurations pratiques. Il faudra également penser à définir une route pour l'API et l'activer.
Groupes de champs
Dans la partie groupes de champs, on peut ajouter, modifier et supprimer les champs qui vont composer la collection. Avec la version gratuite de l'extension, on a accès à tous les champs classiques (texte, image, url, etc), la version payante n'ajoute que des champs qui facilitent la mise en page.
Il ne faut pas oublier d'attribuer le groupe de champs au type de publication qui lui correspond dans les réglages.
Les collections
Quand une collection est créée, on peut y accéder via le menu à gauche. Dans la vue de la collection, on a la liste des objets déjà créées, que l'on peut modifier ou supprimer. On a également la possibilité de créer de nouveaux objets.
Pour chaque objet, il faut renseigner un titre et remplir l'ensemble des champs qui composent la collection. Une fois terminé, il faut cliquer sur le bouton publier ou mettre à jour pour sauvegarder l'objet.
Pour aller plus loin
Export des données
Pour exporter les données, on utilise la fonction WordPress dans l'onglet Exporter du menu Outils. Dans cette vue, on a la possibilité d'exporter les données de toutes les collections ou de le faire individuellement pour chaque collection.
Export de la structure de données
L'export des collections se fait dans le menu ACF, dans la partie Outils. Comme pour l'export des données, on peut choisir entre tout exporter ou exporter seulement les collections qui nous intéressent. On peut aussi choisir d'exporter soit les groupes de champs ou les types de publication.
WORDPRESS_HTACCESS_OVERRIDE_NONE: no
# WORDPRESS_ENABLE_HTACCESS_PERSISTENCE: yes
volumes:
- ./wp-data/wordpress_data:/bitnami/wordpress
- ./docker-entrypoint-init.d:/docker-entrypoint-init.d:ro
# - ./wp-data/uploads:/var/www/html/wp-content/uploads # Ne pas monter directement dans /opt/bitnami/wordpress/wp-content/ car sinon l'init de l'image tombe en erreur
depends_on:
- wordpress-db
# nginx:
# container_name: nginx
# image: nginx:latest
# ports:
# - '8080:80'
# volumes:
# - ./nginx.conf:/etc/nginx/nginx.conf:ro
# - ./wp-data/uploads:/var/www/html/wp-content/uploads:ro
# networks:
# - wordpress-network
# depends_on:
# - wordpress
networks:
wordpress-network:
|
Modifier les variables d'environnement du fichier pour coller à la configuration souhaitée puis monter les images docker via :
| Bloc de code |
|---|
$ docker compose up -d |
Votre instance de Wordpress devrait alors être accessible à l'adresse : http://localhost:9090
| Remarque |
|---|
La configuration Nginx permet de créer un proxy afin de délivrer les assets de manière statique. Elle n'a pas trop d'utilité sur une installation locale. |
Configurer Wordpress
A la première connexion il est important de suivre la configuration suivante, en essayant de respecter l'ordre pour éviter tous éventuels problèmes ou effets de bord inattendus vis à vis de l'utilisation un peu particulière qui est faite du CMS
Configurer les langues disponibles
Dans le menu latéral gauche, cliquez sur Langues > Configuration.
Sélectionnez les langues dont vous avez besoin et cliquez sur le bouton Ajouter une nouvelle langue
Cliquez sur Continuer.
N'autorisez pas la traduction des médias, puis revenir à l'administration en cliquant sur le bouton Retour au tableau de bord.
Il est nécessaire ensuite de sélectionner les collections qui bénéficieront des traductions. Pour cela, dans le menu latéral gauche, cliquez sur Langues > Réglages, puis dépliez la section Types de publication personnalisés et taxonomies.
Sélectionnez les collections suivantes :
- Canaux de notifications (channels)
- Formulaire de contact (contact_us)
- Informations importantes (important_news)
- Page de login (login)
- Services (features)
- Pages statiques (static_pages)
- Widgets (widgets)
- Catégories de points (map_categories)
- Points sur la carte (map_points)
Puis cliquez sur Enregistrer les modifications
Enfin dans le menu supérieur, cliquez sur Afficher toutes les langues et sélectionnez Français. Ceci permettra de n'afficher que le contenu en français dans le listing des articles.
Vérifier les mises à jour
Cliquer sur Tableau de bord > Mises à jour dans le menu latéral gauche et vérifier si des maj sont disponibles pour le core mais aussi les plugins et les traductions.
Si oui alors procédez aux mises à jour.
| Info |
|---|
On vérifie les mises à jour après la configuration des langues car l'utilisation de nouvelles langues va débloquer les mises à jour de nouveaux fichiers de langues. |
Configurer Pods
Par défaut, Wordpress ne propose que 4 types par défaut : Articles, Médias, Pages et Commentaires. On ne peut pas y toucher n'y même y ajouter des champs.
Pods est donc l'extension qui nous permet de créer des collections personnalisées dans Wordpress.
Lien vers le plugin : https://fr.wordpress.org/plugins/pods/
Le plugin multi-wordpress-config permet déjà un paramétrage automatique assez conséquent de Pods, mais certaines options doivent tout de même être sélectionnées manuellement.
Rendez vous dans Pods Admin > Composants puis désactivez le composant Templates. Étant donné que nous allons faire une utilisation headless de Wordpress, cette fonctionnalité ne nous sera pas utile.
De même, au niveau de Pods Admin > Réglages vous pouvez passer la fonctionnalité Dynamic Features à Disable All Dynamic Features in Pods (penser à enregistrer la modification avec le bouton en bas de page)
Configurer WPGraphQL
Par défaut, Wordpress ne propose que du REST comme API disponible.
Pour pouvoir interfacer le connecteur CMS avec, qui lui gère les échanges en GraphQL, il est nécessaire d'utiliser un plugin supplémentaire : WPGraphQL
Liens vers le plugin : https://wordpress.org/plugins/wp-graphql/
Normalement, à l'ouverture de l'administration de Wordpress, vous devriez voir un bloc en haut de la page vous demandant d'aider WPGraphQL en envoyant des données, cliquez sur le bouton No Thanks.
Ensuite, rendez vous dans GraphQL > Settings puis modifiez la configuration comme suit :
- Restrict Endpoint to Authenticated Users : Cochez la case "Limit the execution of GraphQL operations to authenticated requests..."
- Enable Batch Queries : Décochez la case "WPGraphQL supports batch queries..."
- Enable GraphiQL IDE : Décochez la case "GraphiQL IDE is tool for exploring the GraphQL Schema and test GraphQL operations..."
- GraphiQL IDE Admin Bar Link : Décochez la case "Show GraphiQL IDE Link in the Wordpress Admin Bar."
Pensez à enregistrer en cliquant sur le bouton Enregistrer les modifications en bas de page.
Vous pouvez réactiver les 2 derniers points si des fois vous voulez faire des essais de requêtes GraphQL sur votre structure.
Créer un user GraphQL pour sécuriser les accès API
Pour éviter de faire les requêtes GraphQL avec les droits admin, on va générer un compte spécifique pour les accès API à notre instance.
Dans la barre latérale gauche, cliquez sur Comptes > Ajouter un compte.
Renseignez un nom d'utilisateur, un email, un mot de passe (ne servira normalement pas), et décochez la case 'Envoyer un e-mail à la personne à propos de son nouveau compte.'
Donnez le rôle abonné au user et cliquez sur le bouton Ajouter un compte.
Une fois le compte créé, éditez à nouveau le user en cliquant sur Modifier
Puis tout en bas de la page, générez un mot de passe d'application.
Donnez un nom à votre mot de passe, ex. Connecteur CMS et cliquez sur le bouton Ajouter un mot de passe d'application.
Wordpress va générer un nouveau mot de passe.
| Remarque |
|---|
Pensez à bien copier le mot de passe généré car une fois la page fermée ce mot de passe ne sera plus accessible et vous en aurez besoin côté Connecteur CMS. Pensez également à enregistrer pour que le modifications soient bien prises en compte. |
Importer les données
L'image Wordpress sur le projet Multi est accompagnée d'un set de données. Vous pourrez les trouver dans le dossier env/local/docker/wordpress/imports/.
Le fichier 0 - data.xml contient l'ensemble des données pour toutes les collections présentes. Si vous ne souhaitez pas importer toutes les données mais seulement celles de quelques collections, vous trouverez un fichier de données par collection.
Il est cependant recommandé de respecter l'ordre suggéré par les numéros de fichiers car certains jeux de données dépendent d'autres collections.
Pour importer les données dans Wordpress, sélectionnez Outils > Importer dans la barre latérale gauche, puis cliquez sur Lancer l'outil d'importation en bas du bloc.
Cliquez ensuite sur Choisir un fichier et sélectionnez le fichier de données souhaité (0-data.xml contient l'ensemble des données, autrement vous pouvez importer les collections une par une en respectant l'ordre indiqué par le numéro en entête de fichier). Puis cliquez sur Téléverser et importer le fichier.
Enfin sur la page suivante, sélectionner admin (admin) à assigner aux articles et cliquer sur le bouton Envoyer (ne pas cocher Téléverser et importer les fichiers joints).
Mise en place des webhooks
| Info |
|---|
De base, Wordpress peut être long à retourner les informations demandées par le backend (pic parfois jusqu'à 2 secondes pour l'ensemble des features pour un utilisateur). Pour palier à ce problème, du cache a été mis en place du côté du Connecteur CMS. Il est possible de personnaliser le TTL de chaque collection à mettre en cache sur le Connecteur CMS, mais pour certaines données qui n'évoluent pas beaucoup, il peut être intéressant de mettre un TTL assez long. Cependant il reste possible d'invalider le cache via une route d'API côté connecteur. La documentation suivante indique donc comment mettre en place des webhooks sur Wordpress, permettant d'appeler ces routes d'invalidation de cache dés qu'un post est créé, modifié ou supprimé depuis l'interface d'administration de Wordpress. |
Authentification JWT
Les routes d'invalidation du cache du Connecteur CMS sont protégées par la stratégie JWT HS256 mise en place pour les échanges entre le backend multi et le connecteur CMS.
Il convient donc de créer un bearer token à partir de la clé privée TOKEN_SECRET fixée dans le fichier .env du Connecteur CMS pour que le plugin Wordpress utilisé soit capable de communiquer avec.
| Bloc de code | ||||
|---|---|---|---|---|
| ||||
{
"service": "wordpress",
"iss": "multi-cms-connector"
} |
Une fois le Bearer Token créé, il faut le renseigner dans la configuration du plugin wp-webhooks. Pour cela, se rendre dans Réglages > WP Webhooks dans la barre latérale, puis cliquer sur l'onglet Authentication, et enfin sur le bouton Create Template.
Dans la modal qui s'ouvre, donnez un nom à votre template d'authentification, par exemple cms-connector, et comme type d'auth choisissez Bearer Token.
Cliquez ensuite sur les 3 points verticaux de la colonne action de votre template, puis sélectionnez Settings.
Dans la nouvelle modal qui s'ouvre, laissez Bearer comme Scheme, et collez votre bearer précédemment créé dans l'input Token. Enfin cliquez sur Save Template.
Mise en place des Webhooks
Malheureusement, avec la version gratuite du plugin utilisé (WP Webhooks) nous ne pouvons pas utiliser les params dynamiques dans les urls. Il va donc falloir créer un trigger pour chaque collection, mais également pour chaque type d'action (create/update/delete) dans chacune des collections.
Dans l'onglet Send Data, nous allons nous intéresser à 3 hooks : Post created, Post trashed et Post Updated. Dans chacun de ces triggers, il va falloir aller renseigner la route qui permet de vider le cache pour chacune des collections.
Pour l'exemple, je vais documenter la création des 3 triggers pour la collection Services (features). Il vous conviendra ensuite de créer le triggers des collections restantes : Page de login (auth), Formulaire de contact (contact-us), Informations importantes (important-news), Canaux de notifications (notifications), Réseaux sociaux (social-networks), Pages statiques (static-pages), Widgets (features), Carte (map-points, campuses, map-icons, map-categories).
Les données de carte sont un cas particulier : il faut créer un seul hook par action, sur la route map-points, mais en sélectionnant dans la config de WP Webhooks les 4 pods : Campus ; Catégorie de point ; Icône carte ; Point sur la carte.
Pour connaitre l'ensemble des routes disponibles : Connecteur CMS Headless#Routesdisponibles
Hook pour la création d'un service
Cliquez sur l'entrée Post created, puis Add Webhook URL.
Dans la modal qui s'ouvre, entrez les éléments suivants :
- Webhook name : donnez un intitulé parlant à votre hook, par exemple clear-features-cache
- Webhook URL : {%URL_VERS_VOTRE_CONNECTEUR_CMS%}/cache/clear/features
Puis cliquez sur le bouton Add for post_create.
Une fois le hook créé, nous allons le configurer. Cliquez sur les 3 points alignés verticalement sous la colonne Action, puis sur Settings.
Dans la modal qui s'ouvre, modifier les paramètres suivants :
- Trigger on selected post types : Sélectionnez le type Service
- Trigger on initial post status change : Sélectionnez Publié
- User must be logged in : activé
- Trigger from backend only : activé
- Change the data request type : X-WWW-FORM-URLENCODE
- Change the data request method : GET
- Add authentication template : Choisissez le template créé précédemment (dans notre exemple, cms-connector)
- Laissez le reste inchangé
Cliquez sur le bouton Save Settings et fermez la modal.
Votre trigger est à présent configuré. Vous avez la possibilité de le tester en cliquant sur les 3 points alignés verticalement, puis Send Demo.
Si votre connecteur est configuré en mode Debug (variable NODE_ENV différente de production), vous devriez voir passer les informations d'invalidation du cache dans les logs
Hook pour la modification d'un service existant
Cliquez sur l'entrée Post updated, puis Add Webhook URL.
Dans la modal qui s'ouvre, entrez les éléments suivants :
- Webhook name : donnez un intitulé parlant à votre hook, par exemple clear-features-cache
- Webhook URL : {%URL_VERS_VOTRE_CONNECTEUR_CMS%}/cache/clear/features
Puis cliquez sur le bouton Add for post_update.
Une fois le hook créé, cliquez sur les 3 points alignés verticalement sous la colonne Action, puis sur Settings.
Dans la modal qui s'ouvre, modifier les paramètres suivants :
- Trigger on selected post types : Sélectionnez le type Service
- Trigger on post status : On va laisser volontairement vide pour que le cache soit mis à jour sur changement de statut (par exemple dans le cas où un utilisateur décide d'archiver un service, ou bien de passer un service de l'état 'brouillon' à 'publié')
- User must be logged in : activé
- Trigger from backend only : activé
- Change the data request type : X-WWW-FORM-URLENCODE
- Change the data request method : GET
- Add authentication template : Choisissez le template créé précédemment (dans notre exemple, cms-connector)
- Laissez le reste inchangé
Cliquez sur le bouton Save Settings et fermez la modal.
Hook pour la suppression d'un service existant
| Info |
|---|
Ici nous allons utiliser le trigger Post trashed plutôt que Post deleted car nous partons du principe qu'à partir du moment où un contenu est mis à la corbeille il n'a plus lieu d'être affiché sur l'application mobile. Et cela permet, le cas échéant, de le republier en cas de restauration via le trigger Post updated. |
Cliquez sur l'entrée Post updated, puis Add Webhook URL.
Dans la modal qui s'ouvre, entrez les éléments suivants :
- Webhook name : donnez un intitulé parlant à votre hook, par exemple clear-features-cache
- Webhook URL : {%URL_VERS_VOTRE_CONNECTEUR_CMS%}/cache/clear/features
Puis cliquez sur le bouton Add for post_trash.
Une fois le hook créé, cliquez sur les 3 points alignés verticalement sous la colonne Action, puis sur Settings.
Dans la modal qui s'ouvre, modifier les paramètres suivants :
- Trigger on selected post types : Sélectionnez le type Service
- User must be logged in : activé
- Trigger from backend only : activé
- Change the data request type : X-WWW-FORM-URLENCODE
- Change the data request method : GET
- Add authentication template : Choisissez le template créé précédemment (dans notre exemple, cms-connector)
- Laissez le reste inchangé
Cliquez sur le bouton Save Settings et fermez la modal.
Optimisation et sécurité du CMS
Désactiver toutes les options relatives aux commentaires
Les commentaires n'étant d'aucune utilité dans notre cas d'usage, toutes les options en rapport peuvent être désactivées.
Dans la barre latérale gauche, Réglages > Commentaires et décochez les options inutiles.
Santé du site
Wordpress met à disposition un outil permettant d'améliorer les performances et la sécurité. Pour cela, cliquez sur Outils > Santé du site dans la barre latérale gauche et suivez les suggestions afin d'améliorer le fonctionnement de votre instance.
Classer le contenu par colonne
Par défaut, Wordpress ne permet pas de trier le contenu de chaque collection en fonction des attributs disponibles. Il se contente seulement d'afficher le titre, la date de dernière publication et la langue.
Pour améliorer cela, l'instance de Wordpress proposée avec Multi fournit un plugin WPC Admin Columns qui permet de personnaliser les colonnes à afficher.
Pour personnaliser les colonnes, il suffit de se rendre sur la collection et de cliquer sur le bouton Columns en haut à gauche.
Une fenêtre s'ouvre vous permettant de choisir les colonnes à afficher / masquer, de changer l'ordre et aussi d'ajouter une nouvelle colonne.
Pour ajouter une nouvelle colonne, dans la popup ouverte cliquez sur le bouton + Add column. Éditez le nouveau champ qui vient d'apparaitre, donnez lui un nom de colonne, choisissez le type Custom field et dans le champ Field choisissez l'attribut que vous souhaitez (par exemple feature_description, qui est le champ description de la collection Features). Vous pouvez ensuite décider si le champ peut être éditer en saisie rapide ou non et si l'utilisateur peut trier la collection sur cette colonne.
Vous pouvez également déplacer cette colonne dans la liste. Dans l'exemple suivant, j'ai par exemple choisi d'afficher la description juste après la colonne titre.
Erreurs rencontrées
Failed to execute /docker-entrypoint-init.d/init-wordpress.sh
Si vous rencontrez ce message d'erreur au montage du Dockerfile, pensez à vérifier les droits sur le fichier init-wordpress.sh
| Bloc de code | ||
|---|---|---|
| ||
chmod 755 init-wordpress.sh
chmod +x init-wordpress.sh |
Ajouter une collection
Côté wordpress
Le plugin WP développé prévoit la creation de pod automatiquement au moment de l'installation de ce dernier. Les pods sont décrits dans des fichiers dédiés, il faudra donc ajouter un fichier pour la nouvelle collection à ce niveau là : https://github.com/univlorraine/multi-wordpress-config/tree/main/includes/pods
Prévoir l'import d'un jeu de données de test dans :
Côté multi
Adapter le connecteur CMS





























