Changelog
Historique des versions de PipnHub
Dernière version — 1.2.5
-
Admin Import CSV : détection du groupe par intersection — les colonnes inconnues du CSV sont désormais ignorées silencieusement (plus d'erreur si le fichier contient des colonnes supplémentaires comme Amazon, Fnac, etc.)
-
Admin Import CSV : la position des colonnes est calculée par nom (plus par index), ce qui garantit la lecture correcte même si l'ordre ou le nombre de colonnes varie
-
Admin Import CSV : les erreurs "post introuvable" sont séparées des erreurs fatales — elles s'affichent dans une notice warning avec le nombre de lignes ignorées et un lien dépliable listant les IDs concernés
-
PIP MESH : nouveau module de suggestion de maillage interne (pipmesh.inc.php) — scanne tous les posts publiés et détecte les opportunités de liens internes en croisant les tags et catégories du site avec le contenu de chaque article
-
PIP MESH : déclenchement manuel via un bouton "Lancer le scan" (appel AJAX sécurisé par nonce), résultats affichés dans un tableau avec lien "Éditer" direct vers chaque post concerné
-
PIP MESH : aucune modification automatique — l'outil est purement suggérateur
-
Admin Custom Fields : export CSV par groupement depuis la page Champs PNH (bouton "Exporter CSV", via admin-post.php, avec nonce)
-
Admin Custom Fields : import CSV avec aperçu dry-run et confirmation avant application — détection automatique du groupe depuis les colonnes, support des valeurs multiples séparées par |
-
Admin Custom Fields : les requêtes SQL méta sont factorisées dans PNH_GetMetaKeys() et PNH_GetMetaDuplicates() (plus de duplication entre la page admin et l'endpoint AJAX)
-
Admin Custom Fields : les groupements sont centralisés dans PNH_GetGroups() (partagés entre affichage, export et import)
-
Admin Custom Fields : affichage des valeurs multiples par meta key (une <code> par valeur)
-
Admin Custom Fields : fix HTML — la section Meta Keys est correctement incluse dans le .wrap WordPress
-
Admin Redirections : wp_date() utilisé à la place de date() pour respecter la timezone WordPress
-
Admin Redirections : filtrage de la liste effectué une seule fois avant la boucle d'affichage (fix doublon de filtre)
-
Admin Recherche articles : nonce AJAX ajouté sur pnh_search_posts (fix sécurité)
-
Admin Flags : sanitize_key() utilisé pour construire la clé d'option (au lieu de esc_attr())
-
Admin Comptage mots : traitement par lots de 200 articles pour éviter les memory exhaustion sur les grandes bases
-
Sécurité : correction de sorties non échappées dans plusieurs fichiers (wp_kses_post() ou esc_html() selon le contexte)
-
API : .htaccess simplifié — les endpoints sched.json.php et stats.json.php sont autorisés via une exception FilesMatch directe (suppression du bloc séparé redondant)
-
SEO : les schemas JSON-LD FAQ, VideoObject et Product ne sont plus injectés en doublon quand RankMath ou Yoast est actif — VideoObject et Product sont conservés uniquement si les meta keys Youtube ou Tradker sont présentes sur l'article
-
Setup : chargement conditionnel du CSS et JS du formulaire de contact (form-feedback.css / form-feedback.js) uniquement sur la page contact, avec handle pnh-bundle enregistré pour résoudre les dépendances
-
Setup : les meta keys Pip, Hub, Youtube et Tradker sont enregistrées en REST API avec auth_callback (remplacement des anciennes clés PIP/HUB typées integer sans protection)
-
Table des matières : fix — l'injection d'id= sur les titres préserve désormais le HTML interne de la balise Hx (<strong>, <em>…) au lieu de le supprimer
-
Table des matières : fix — la détection "titre déjà pourvu d'un id=" est précise au titre concerné (plus de faux positif sur n'importe quel Hx du contenu)
-
Footer : l'année de copyright de début est paramétrable via le customizer WordPress (pnh_copyright_year)
-
Formulaire contact : nonce désanitisé proprement avant vérification (sanitize_text_field + wp_unslash)
-
Sécurité : sorties echo $notice sécurisées avec wp_kses_post() dans admin.inc.php et sitemap.inc.php ; _e() remplacé par esc_html_e() dans taxonomy.inc.php
-
Remote / Kahlendar : remplacement des opérateurs nullsafe (??) par des isset() pour compatibilité PHP 7 ; indentation uniformisée
-
Newsletter : le script JS est désormais un fichier externe, il n'est plus injecté en inline dans les pages
-
SEO : le logo utilisé dans Schema.org est maintenant le logo configuré dans WordPress (Apparence → Personnaliser)
-
Mention IA (Rediacteur) : si la meta rediacteur est renseignée sur un article, une mention "rédigé avec l'assistance de l'IA" s'affiche automatiquement avec le lien source
-
Sitemap : limite réduite à 10 000 posts par fichier (conformité recommandations Google)
-
Sécurité : cookie captcha avec SameSite: Strict, clés API et URL hardcodées supprimées et remplacées par des constantes
-
Mise à jour automatique : URL du serveur de mise à jour changée vers www.pipnhub.com
-
PIPNEST : le thème supporte nativement la structure PIPNHEST pour les sous-domaines et domaines externes
-
Admin : nouvelle page "Redirections 301" pour créer et gérer des redirections sans plugin
-
Admin : la page Meta Keys est beaucoup plus rapide sur les gros sites (une seule requête SQL au lieu d'une par article)
-
Shortcode [lang] : permet d'afficher des blocs bilingues côte à côte dans les articles — [lang code="fr"]...[/lang][lang code="en"]...[/lang]
-
Shortcode [hidden] : masque visuellement un bloc de contenu, révélable au clic, mais reste présent dans le DOM pour Google
-
Fix : le widget Kahlendar pouvait provoquer des timeouts à cause d'une URL incorrecte (redirection manquante côté serveur distant)
-
Grilles : les pages catégorie, tag, auteur et les résultats de recherche s'adaptent maintenant automatiquement au format carré des images, comme la home page depuis la 1.1.7
-
Grilles images carrées : quand tous les articles d'un bloc ont une image carrée, la grille passe automatiquement en mode grid-all-square avec plus de colonnes pour mieux tirer parti de l'espace
-
Widget Kahlendar : nouveau widget affichant les éphémérides du jour (saints, anniversaires, événements) via l'API kahlendar.com
-
SEO admin : interface de configuration SEO par catégorie refactorisée avec variables cliquables et palette d'aide
-
Reziztanz : intégration du script de partage Reziztanz dans le footer
-
Page contact HEI : nouveau template de formulaire de contact alternatif
-
Thème enfant : le thème est maintenant conçu pour être surchargé proprement depuis un thème enfant — chaque fichier CSS est chargé individuellement pour permettre la surcharge par cascade
-
Home page modulaire : la page d'accueil est maintenant un orchestrateur configurable (parts/front-page/front-page.php) à surcharger dans le thème enfant avec les blocs souhaités (posts-grid, posts-list, posts-remote, hero-featured, spotlight-grid)
-
Routeur de pages amélioré : les pages peuvent désormais choisir leur template via un custom field Template sans dépendre du slug
-
Modules distants : ajout de remote.inc.php (appels API) et game.inc.php
-
Nouveaux widgets : categories-simple, last-posts-simple, links, pages
-
Nouveaux templates de page : archive-grid, latest-modified, latest-published, latest-random, selektroma
-
Tri par date de modification : les blocs de la home peuvent maintenant être triés par modified (date de dernière mise à jour) en plus de date
-
Contrôles de tri : les boutons de tri sur la home sont réactivés et correctement synchronisés avec l'état initial rendu par PHP
-
Admin "Articles Courts" : nouvelle page listant les articles dont le contenu est inférieur à un seuil de mots configurable (défaut : 500)
-
Nouveaux templates de page : archive-grid, latest-modified, latest-published, latest-random
-
Images carrées : les miniatures carrées ne sont plus déformées dans les grilles — détection automatique du ratio et affichage non recadré
-
Architecture modulaire WordPress (lib/ : setup, posts, display, SEO, sitemap, admin, update...)
-
Système de design CSS avec variables centralisées — 3 couleurs à changer pour tout personnaliser
-
Templates complets : home, single, page, category, tag, author, search
-
Composants réutilisables : breadcrumb, table des matières, articles similaires, widgets sidebar
-
SEO avancé : Schema.org, Open Graph, sitemaps XML, robots.txt
-
API privée avec authentification par clé (/api/sched, /api/stats)
-
Fonts auto-hébergées (FugazOne + Roboto Condensed), lazy loading, headers de sécurité HTTP
-
Support multi-langue fr_FR / en_GB