WP Custom

Trente et un mu-plugins sur mesure pour faire tourner un média local.

  • WordPress
  • PHP
  • Développement sur mesure
Une page publique de bigcitynantes.fr, un extrait de code et deux écrans d'administration des modules

Présentation

Big City ne tient pas dans un WordPress standard. Palan a conçu et développé pour le média un socle de trente et un modules WordPress sur mesure (mu-plugins), dont huit modules métier : agenda, boutique, régie publicitaire, espace partenaires, prise de rendez-vous, plannings d'équipe, tableau de bord et messagerie sociale, tous pilotés depuis le même back-office.

Détails du projet

Projet :
Développement WordPress sur mesure
Client :
Big City (éditions Nantes et Angers)
Secteur :
Média local, sorties & culture
Date :
, en évolution continue
Périmètre :
31 mu-plugins, plus de 150 000 lignes de code et 45 000 lignes de tests
Résultat :
31 modules WordPress sur mesure, 45 000 lignes de tests

Le site

bigcitynantes.fr est le site du média Big City : rubriques Actu, Insolite, Culture & Loisirs, Boire & Manger et Tops, sa une éditoriale, l'agenda de la semaine et la newsletter. Palan a aussi conçu et développé le site ; l'édition d'Angers partage la même base.

Côté public

  • WordPress

    Un WordPress pensé pour un média qui publie beaucoup d'articles : page d'accueil dédiée, gabarits d'article et pages propres aux événements et aux lieux de l'agenda.

  • Deux villes, une base

    Les éditions Nantes et Angers tournent sur la même base : les modules décrits plus bas servent les deux.

  • Vers l'application

    Le site renvoie vers l'application mobile Big City, développée elle aussi par Palan.

Le besoin

Big City est un média local qui vit de son agenda, de sa régie publicitaire et de sa relation avec les lieux de la ville. Il compte deux éditions (Nantes et Angers) et se prolonge dans une application mobile. WordPress reste le cœur éditorial. Tout le reste (vendre, réserver, planifier, mesurer, répondre) devait être construit sur mesure, dans le même back-office, plutôt qu'assemblé à partir d'extensions génériques.

Ce que Palan a livré

  • Un socle réseau

    Un registre des villes chargé avant tout le reste, un coffre à secrets chiffré, un registre de permissions unique et un pare-feu applicatif : la base commune sur laquelle chaque module s'appuie.

  • Huit modules métier

    Agenda, boutique, régie publicitaire, espace partenaires, prise de rendez-vous, plannings salariés, tableau de bord et messagerie sociale, chacun avec ses écrans d'administration, ses appels d'API et ses tâches planifiées.

  • Une discipline de code

    Chaque module vérifie ses fichiers avant de se charger, les clés d'API sont stockées chiffrées en base, les tâches planifiées sont isolées par site et 45 000 lignes de tests accompagnent le code.

Le socle technique

Les trente et un mu-plugins sont des modules que WordPress charge automatiquement : ils n'ont pas besoin d'être activés et ne peuvent pas être désactivés par erreur. Les premiers d'entre eux ne font rien de visible : ils fixent les règles que tous les autres suivent.

Chaque module vérifie la présence de ses fichiers avant de se charger, pour survivre à un déploiement incomplet ; chaque tâche planifiée est déclarée par site et jamais pour tout le réseau ; les deux villes partagent le code et ont chacune leurs tables.

Les fondations

  • BCN Network

    Le registre des sites de ville, chargé en premier. Il indique si un site est une édition de ville et porte l'identité de chaque édition : nom, domaine, e-mail, réseaux sociaux. Sept modules s'y adossent dès leur chargement.

  • BCN Connect

    Le hub des connexions aux services tiers : un coffre chiffré pour les clés d'API, dont la clé de déchiffrement est conservée hors de la base, et des clients HTTP pour douze fournisseurs (Stripe, Brevo, Google, Meta, TikTok, Anthropic, Notion, La Poste, Apple…). Une seule page de réglages, au niveau du site ou du réseau.

  • BCN Perms

    Un registre déclaratif des accès aux écrans d'administration créés pour le projet. Chaque module déclare ses écrans et la capacité requise ; un seul filtre WordPress applique les règles pour tout le réseau.

  • BCN Security

    Un pare-feu applicatif à l'échelle du réseau : rejet des sondes de vulnérabilités et des robots de scan, limitation des tentatives de connexion, bannissement des adresses récidivistes. Il ne bloque jamais un utilisateur connecté et peut être désactivé par une constante en cas d'urgence.

  • API REST sécurisée

    La couche qui expose WordPress à l'application mobile : clé d'API, limitation de débit, CORS et élévation contrôlée des droits sur les événements et les médias.

Vendre et faire vivre l'agenda

Quatre modules portent l'activité du média : l'agenda qui fait venir les lecteurs, la boutique et la régie, qui génèrent les revenus, l'espace partenaires qui relie le média aux lieux de la ville.

Chacun a ses écrans d'administration, sa propre API et ses tâches planifiées, et tous communiquent avec les mêmes services tiers via BCN Connect.

Les modules principaux

  • Agenda événementiel

    Le cœur éditorial du média : événements et lieux, soumission publique puis modération, données structurées pour les moteurs de recherche, quatre tâches quotidiennes (nettoyage, archivage, retrait de la une). Il alimente la page « Que faire à Nantes ? », les fiches lieux et l'application mobile via sa propre API.

  • Boutique

    Une boutique indépendante par ville pour les produits dérivés et les tirages photo : paiement Stripe, paiements manuels, codes promo, expédition avec suivi La Poste, compte client, remboursements, relances automatiques et tableau de bord des ventes. Les produits se vendent depuis les pages éditoriales, sans catalogue séparé.

  • Régie publicitaire

    La régie du média, gérée en interne : campagnes par emplacement (accueil, articles, événements, agenda, application), mises en avant sponsorisées, rotation quotidienne, mesure côté serveur dans Matomo et balise signée contre la fraude. C'est le module qui porte le revenu direct du site.

  • Espace partenaires

    Un portail pour les lieux de la ville : comptes partenaires, demandes, modération des fiches et des événements, puis un sous-module de réservation d'espaces privatisables avec créneaux, facturation et abonnements. Quatre écrans d'administration et une file de tâches quotidiennes.

Organiser le média au quotidien

Les quatre autres modules majeurs ne se voient pas depuis le site : ils servent l'équipe pour la prise de rendez-vous avec un annonceur, la planification des tournages, le suivi des chiffres et la réponse aux messages privés, sans quitter WordPress.

Ils tiennent la place d'autant d'outils en ligne distincts, mais partagent les mêmes comptes, les mêmes droits et les mêmes données que le reste du média.

Les outils internes

  • Prise de rendez-vous

    Un équivalent de Calendly, développé sur mesure : disponibilités par membre de l'équipe, page de réservation publique non indexée, création automatique de l'événement Google Calendar et du lien Meet, rappels par e-mail et SMS via Brevo, synchronisation asynchrone avec le CRM Notion.

  • Plannings salariés

    La gestion des équipes du réseau : postes bureau, tournage, télétravail et absences, registre inaltérable des congés et des heures supplémentaires, pointages et une vue « Mon planning » pour chaque salarié.

  • Tableau de bord

    Les indicateurs du média, collectés chaque jour (et toutes les six heures pour les stories), rassemblés dans un tableau de bord interne, des rapports mensuels et un diaporama de présentation.

  • Messagerie sociale

    Les messages privés Facebook et Instagram des deux éditions réunis dans WordPress : webhooks Meta, modèles de réponse, tri par mots-clés, accusés de réception et brouillons de réponse rédigés par IA.

Les briques intermédiaires

Autour des modules majeurs, douze briques plus petites règlent chacune un problème précis du média : la paie des intermittent·e·s, l'accès de l'équipe, les notifications de l'application, la relecture des articles, les e-mails, les invitations.

S'y ajoutent six utilitaires plus modestes : le tirage au sort quotidien du concours « 100K », un lecteur des journaux d'API, la connexion Facebook sur l'écran de connexion, le traceur Matomo sans cookie, l'hygiène SEO (sitemap, redirections, pages retirées) et les groupes de champs ACF déclarés en code pour être partagés entre les villes.

Une brique par besoin

  • Intermittent·e·s

    Profils, saisie mensuelle des cachets avec verrou le jour J, déclaration préalable à l'embauche envoyée à l'URSSAF et contrat récapitulatif signé électroniquement via Documenso.

  • Google Workspace

    L'authentification unique des comptes de l'équipe : les rôles WordPress de chaque site suivent automatiquement le statut du compte Google.

  • Application mobile

    Le côté serveur de l'application Big City : enregistrement des appareils, notifications push iOS et Android, résumé hebdomadaire et alertes.

  • Correcteur IA

    Correction orthographique et grammaticale, écriture inclusive et relecture des articles depuis l'éditeur.

  • E-mails transactionnels

    Envoi via Brevo avec repli sur Gmail et journal des envois purgé après 90 jours.

  • Contact et newsletter

    Formulaire de contact et inscription en double opt-in par ville, protégés par reCAPTCHA et limitation de débit.

  • Flux newsletter

    Un flux RSS par ville, composé des articles et des événements choisis, que Brevo consomme pour la newsletter.

  • Invitations B2B

    Inscription à un événement via une page à jeton, confirmation par e-mail, fichier .ics et cartes Apple / Google Wallet.

  • SVG sécurisés

    Import de SVG dans la médiathèque avec nettoyage strict et droits par rôle.

  • Google Places

    Recherche de lieux, détails et photos avec cache et limitation de débit.

  • Supervision des sauvegardes

    Un écran réseau pour déclencher et suivre les sauvegardes serveur et tester leur envoi vers Google Drive.

  • Crédit photo obligatoire

    Impossible de publier un article sans crédit photo ; le crédit est injecté en légende sur le site.

  • Services liés

    Ce projet illustre nos services de développement logiciel et d'outils de vente en ligne. Voir aussi : logiciel de gestion sur mesure.

Découvrir La Chaumière

  • Site vitrine
  • UX / UI
  • PHP
La Chaumière : la page d'accueil du site sur ordinateur et sur mobile

Parlons de votre projet