wpformation
Forum Replies Created
-
Bonne idée pour Joomla.
N’hésitez pas à laisser un avis sur OGEEAT sur le repo WP
Ça aide pour la visibilitéBonjour Nicolas,
Ce n’est jamais immédiat. Ça prend toujours du temps et même l’indexation par les LLMs prend également du temps
Si votre fichier llms-full.txt est accessible, n’est pas bloqué et que vous pouvez vous-même y accéder, alors tout va bien et les LLMs indexeront ce fichier au fil du tempsForum: Plugins
In reply to: [OGEEAT] Pas d’option “Extrait vocal” dans l’éditeurBonjour rodman38,
Merci pour ce retour très complet, je réponds point par point.1. Voice Snippet dans le panneau latéral
C’est déjà disponible : la v2.2.3 est sortie il y a quelques jours sur wp.org. Le champ Voice Snippet (VEO) apparaît désormais directement dans le panneau latéral OGEEAT à droite de l’éditeur, entre « Score GEO » et « Profil E-E-A-T ». Mettez à jour depuis Tableau de bord → Mises à jour et plus besoin de scroller jusqu’en bas de l’éditeur.
2. Détection du E-E-A-T implémenté hors plugin
Réponse honnête : c’est volontairement hors scope d’OGEEAT. Le plugin est conçu pour être la source du E-E-A-T et générer le JSON-LD, pas pour auditer ce qu’un autre code injecte dans le . Auditer le DOM rendu, c’est le rôle d’outils spécialisés (Schema Markup Validator, Rich Results Test).
Pour votre cas précis, le filter
ogeeat_geo_checksest exactement fait pour ça. Dans votre mu-plugin, 5 lignes suffisent à aligner le score sur la réalité :add_filter( 'ogeeat_geo_checks', function ( $checks, $post_id ) { if ( isset( $checks['organization'] ) ) $checks['organization']['status'] = 'green'; if ( isset( $checks['author'] ) ) $checks['author']['status'] = 'green'; return $checks; }, 10, 2 );Vous gardez votre architecture et le score GEO reflète enfin votre situation réelle.
3. Distinguer l’auteur de l’expert qui valide (YMYL)
OGEEAT a déjà la feature pour ça depuis la v2.2.0 : c’est Reviewed By, accessible dans la metabox OGEEAT classique, juste sous le Voice Snippet. Ça génère le
reviewedByPerson dans le JSON-LD Article et affiche « Relu et validé par [Nom], [Fonction] » sous l’Author Box.La feature exige effectivement un utilisateur WordPress comme reviewer. Mon conseil : créez un utilisateur dédié à l’expert avec le rôle Abonné. Aucun accès admin, juste un profil rempli avec ses diplômes, certifications, expérience et
sameAs. C’est la pratique standard YMYL sur WP, ça reste cohérent avec l’écosystème (Gravatar, get_userdata, etc.) et c’est plus simple à long terme qu’un modèle parallèle d’experts non-WP.Je ne prévois pas d’ajouter un modèle d’experts externes dans le plugin : le pattern user-Abonné couvre l’écrasante majorité des cas YMYL.
4. llms.txt — bonnes pratiques, exclusions, utilité de llms-full.txt
Bonne pratique : oui, mieux vaut limiter aux contenus à forte valeur (articles, pages ressources type FAQ/guides/glossaire). Pas la peine d’inclure mentions légales, politique de confidentialité, panier, mon compte, pages techniques.
Exclure une page individuellement : la case existe déjà ! Dans la metabox OGEEAT classique (en bas de l’éditeur), tout en bas du panneau, vous avez « Exclure ce contenu de llms.txt ». Cochez-la sur vos mentions légales et politique de confidentialité.
Exclure en masse via mu-plugin : le hook
ogeeat_llms_query_argspermet de filtrer la requête. Exemple pour plusieurs slugs d’un coup :add_filter( 'ogeeat_llms_query_args', function ( $args, $post_type ) { if ( 'page' === $post_type ) { $args['post__not_in'] = get_posts( array( 'post_type' => 'page', 'name__in' => array( 'mentions-legales', 'politique-de-confidentialite', 'cgv' ), 'posts_per_page' => -1, 'fields' => 'ids', ) ); } return $args; }, 10, 2 );Utilité de llms-full.txt sur les gros sites : franchement, sur un blog de plusieurs centaines d’articles, l’intérêt est très discutable. La spec llms-full a été pensée pour les sites de doc/référence où le contenu complet tient dans un fichier raisonnable. Pour un site éditorial, le llms.txt (liens + résumés) suffit largement : les crawlers IA n’ont ni la capacité ni l’envie d’avaler plusieurs Mo de markdown. Pour la v2.5, je prévois d’ajouter un toggle pour désactiver llms-full.txt indépendamment de llms.txt.
Merci encore pour la qualité du dialogue, vos retours alimentent directement la roadmap.
Bien cordialement,
FabriceForum: Plugins
In reply to: [OGEEAT] Pas d’option “Extrait vocal” dans l’éditeurBonjour rodman38,
Merci pour les captures, elles m’aident beaucoup ! Votre configuration est bonne (VEO bien activé, score GEO 11/12). Le critère « Extrait vocal » s’affiche en rouge dans le score GEO parce que le champ n’est pas encore rempli — c’est normal.
Le souci est ailleurs : le champ « Extrait vocal » (Voice Snippet) n’est PAS dans le panneau latéral OGEEAT à droite que vous avez ouvert. Il se trouve dans la metabox OGEEAT classique qui s’affiche EN BAS, sous la zone de contenu de l’éditeur (et qui porte malheureusement le même nom « OGEEAT » que le panneau latéral, désolé pour la confusion, je vais améliorer ça).
Pour le trouver :
1. Cliquez sur « Sortir de l’éditeur de code » (le lien bleu en haut à gauche de votre capture) pour revenir à l’éditeur visuel.
2. Scrollez tout en bas de l’éditeur, sous la zone d’écriture du contenu.
3. Vous y trouverez une grande zone repliable intitulée « OGEEAT » avec 5 onglets (GEO & E-E-A-T, Google, Facebook, X/Twitter, LinkedIn).
4. Dans le premier onglet (GEO & E-E-A-T) actif par défaut, sous le score GEO, vous verrez l’encadré « Voice Snippet (VEO) » avec une icône microphone violette et un textarea pour écrire votre extrait vocal (max 40 mots).
Si vous ne voyez pas cette metabox du tout en bas :
– En haut à droite de l’éditeur, cliquez sur les trois points → Préférences → onglet « Panneaux » → assurez-vous que « OGEEAT » est bien activé dans la section « Boîtes supplémentaires ».
Pour info, j’ai pris note que c’est très peu découvrable : je vais ajouter le champ Voice Snippet directement dans le panneau latéral OGEEAT dans une prochaine version, pour qu’il soit au même endroit que le critère GEO qui le réclame.
Bien cordialement,
FabriceForum: Plugins
In reply to: [OGEEAT] Encadré auteur utile si deja present par ailleurs ?Bonjour,
il vaut mieux éviter de faire tourner 2 mêmes fonctionnalités. Faites votre choix et n’en faites tourner qu’une.Bonjour,
Merci beaucoup pour ce retour, vous avez mis le doigt sur un vrai bug.Le toggle « Empêcher l’énumération des auteurs et autrices » est censé bloquer une technique d’énumération côté public : un attaquant qui appelle /?author=1, /?author=2, etc. récupère normalement les identifiants de login WordPress un par un via les redirections 301 automatiques. Login Armor coupe cette fuite en redirigeant ces URLs vers la home.
Le problème que vous remontez : cette protection ne distinguait pas l’usage public anonyme de l’usage légitime dans wp-admin (cliquer sur « les miens » ou sur un nom d’auteur dans la liste des articles ou des pages utilise exactement la même URL ?author=N). Du coup, dès qu’un éditeur ou un administrateur cliquait sur ce lien dans la liste d’articles, il était renvoyé sur la home.
Le fix est simple et conservateur : Login Armor laisse passer ?author=N uniquement dans le contexte wp-admin et uniquement pour les utilisateurs connectés ayant la capacité edit_posts (administrateur, éditeur, auteur, contributeur). Toutes les autres requêtes restent bloquées exactement comme avant. La protection anti-énumération côté public n’est pas affaiblie.
La version 2.1.14 qui inclut ce correctif est en préparation, elle sera publiée dans la journée sur ww.wp.xz.cn. Vous pourrez réactiver le toggle dès la mise à jour faite, le tri admin fonctionnera normalement.
Merci encore pour le test précis et le rapport clair, c’est exactement le genre de retour qui aide à corriger vite.
Fabrice
Forum: Plugins
In reply to: [Login Armor] URL Hide LoginBravo pour le diagnostic ! Effectivement, pas de .htaccess sur Docker + Caddy = pas de RewriteRule WordPress = boucle 302 sur /wp-admin/ indépendamment de Login Armor. Confirmé par votre test avec LA désactivé.
Pour info, V2.1.11 a quand même été publiée entre temps (HideLogin::build_login_url() host-aware + dual-base matching dans intercept_request) => c’est une amélioration robuste pour les setups multisite + domain mapping en général, même si dans votre cas spécifique c’était la config web server qui posait souci. Donc rien à perdre à mettre à jour, et ça vous protège contre des cas similaires futurs.
Merci d’avoir creusé jusqu’à la cause root et de l’avoir partagé ici — votre stack Docker + Caddy n’est pas la plus courante côté WordPress, et votre retour aidera d’autres utilisateurs qui tombent sur le même symptôme. Bonne continuation !
Forum: Plugins
In reply to: [Login Armor] URL Hide LoginRe-bonjour graphandco,
Petit complément après inspection du code de Defender (que je suspecte être l’autre plugin qui fonctionnait pour vous) : Defender ne fait pas de SSO cross-domain, il fait simplement du multisite-aware site_url() avec switch_to_blog(). C’est exactement ce que Login Armor V2.1.9 fait depuis ce matin.Donc en pratique, votre setup multisite + domain mapping devrait marcher avec Login Armor 2.1.10 si vous accédez directement à domaineexterne1.com// au lieu de passer par admin.monsupersite.com. Chaque sous-site a son propre flow login indépendant sur son domaine, cookie posé sur le bon hostname, redirect /wp-admin sur ce hostname, no cross-domain issue.
N’hésitez pas à tester si c’est ce que vous cherchez. Bonne soirée.
Forum: Plugins
In reply to: [Login Armor] URL Hide LoginMerci infiniment pour ce retour, ça fait vraiment plaisir.
L’info sur les autres plugins qui gèrent les domaines externes est précieuse — c’est probablement effectivement un mécanisme de SSO style WP MU Domain Mapping (token signé en URL pour transiter d’un domaine à l’autre, qui se traduit en cookie auth de l’autre côté). On l’a noté dans notre backlog roadmap pour V2.2+, si la demande remonte d’autres utilisateurs en multisite domain-mapping on regardera comment l’intégrer proprement dans Login Armor sans casser le périmètre actuel “Hide / Block / Watch”.
Et merci pour le bouche-à-oreille, c’est exactement ça qui fait vivre les plugins gratuits et indépendants. Bonne continuation sur votre projet multisite, et n’hésitez pas à revenir sur le forum si vous croisez d’autres edge cases.
Forum: Plugins
In reply to: [Login Armor] URL Hide LoginBonjour graphandco,
Merci d’avoir confirmé que V2.1.9/V2.1.10 résolvent votre cas principal. Pour vos sous-sites mappés sur des domaines externes : de notre côté on s’arrête là sur Login Armor, pour la raison que vous avez identifiée vous-même : un cookie d’auth ne peut pas traverser deux domaines DNS distincts (monsupersite.com≠domaineexterne1.com). C’est une limite cookie HTTP, pas quelque chose qu’un plugin peut contourner sans monter un système SSO complet (avec tokens + redirects), ce qui sort du périmètre de Login Armor.Deux pistes pour vous selon ce que vous voulez :
1. Auth séparée par domaine externe (le plus simple)
Chaque sous-site garde son propre flow login. Vos admins se connectent directement sur
domaineexterne1.com/<slug-du-sous-site>/, le cookie est posé surdomaineexterne1.com, le redirect post-login va surdomaineexterne1.com/wp-admin/. Login Armor stocke le slug enblog_option(per-site) et V2.1.9+ génère l’URL de login depuissite_url()— donc si vos sous-sites ont leursiteurlcorrectement mappé sur le domaine externe (cas standard du domain mapping), ça fonctionne sans rien faire de plus.Si pour une raison X vous voulez forcer un hostname différent de
site_url()(par exemplesiteurlreste sur le réseau d’origine mais vous voulez que la page de login soit servie sur le domaine externe), le filtrelogin_armor_login_url_baseintroduit en V2.1.9 permet de l’overrider per-site. Snippet générique à laisser ici pour quiconque tombe sur ce thread avec un cas similaire — à déposer danswp-content/mu-plugins/la-multisite-login-domain.php:<?php /** * Plugin Name: Login Armor — Per-Site Login Domain Override * Description: Override Login Armor's login URL hostname per blog_id * when site_url() doesn't match where you want the login * page to be served (typical: multisite + external domain * mapping with siteurl on a different host than the public one). */ if ( ! defined( 'ABSPATH' ) ) { exit; } add_filter( 'login_armor_login_url_base', function ( $url, $path, $scheme, $slug ) { $custom_hosts = [ // blog_id => hostname (avec scheme) 2 => 'https://domaineexterne1.com', 3 => 'https://domaineexterne2.com', // une ligne par sous-site à customiser ]; $blog_id = get_current_blog_id(); if ( isset( $custom_hosts[ $blog_id ] ) ) { return $custom_hosts[ $blog_id ] . $path; } return $url; // default site_url() pour les autres }, 10, 4 );2. SSO centralisé sur
admin.monsupersite.comTous les admins se connectent au même endroit puis sont redirigés vers leur sous-site via tokens. Le plugin WP MU Domain Mapping (gratuit, mature) propose exactement ça avec son option “Login Mapping”. C’est la voie standard pour ce cas, hors périmètre Login Armor.
Votre retour a directement déclenché V2.1.9 + V2.1.10 sur WP.org, encore merci. Bonne route !
Forum: Plugins
In reply to: [Login Armor] URL Hide LoginBonjour graphandco,
Bonne nouvelle, j’ai aussi shippé V2.1.10 entre temps — un fix cosmétique sur la page 404 servie quand un anonyme tape/wp-admin/(le 404 affichait à tort le menu du site dupliqué + sticky header). Ça touchait votre cas aussi puisque vous êtes en redirect vers/wp-admin/.Pour le 404 sur
admin.monsupersite.com/wp-admin/après login, j’ai investigué en reproduisant votre setup en local (siteurl admin.X.local, home X.local). Conclusion : le code Login Armor V2.1.9/V2.1.10 fonctionne correctement — quand le navigateur envoie ses cookies d’auth (wordpress_logged_in_*+wordpress_sec_*) suradmin.monsupersite.com/wp-admin/, Login Armor laisse passer la requête, WordPress charge l’admin normalement.Le 404 que vous voyez signifie donc que vos cookies d’auth ne sont pas envoyés à
admin.monsupersite.compar votre navigateur. C’est typique d’une config multisite headless oùCOOKIE_DOMAINn’est pas défini avec le wildcard sous-domaine. Sans cette définition, WordPress crée le cookie scopé sur le hostname exact où vous vous êtes connecté, et il n’est plus envoyé sur les autres sous-domaines.Solution à tester : ajoutez dans votre
wp-config.php(avant la ligne/* That's all, stop editing! */) :define( 'COOKIE_DOMAIN', '.monsupersite.com' ); // remplacez par votre domaine, le point initial est importantLe
.initial autorise le cookie sur tous les sous-domaines (admin.monsupersite.com,monsupersite.com, et tout autre*.monsupersite.com). Reconnectez-vous viaadmin.monsupersite.com/<votre-slug>/après ce changement, le redirect vers/wp-admin/devrait passer.Si ça ne suffit pas (par exemple si un plugin tiers force un autre
COOKIE_DOMAIN), je peux aussi vous fournir un mu-plugin de debug qui dump l’état des cookies au moment de la requête sur/wp-admin/. Dites-moi.Merci encore pour le retour, ça a directement déclenché V2.1.9 + V2.1.10 sur WP.org.
Forum: Plugins
In reply to: [Login Armor] URL Hide LoginBonjour graphandco,
Merci pour ce retour très précis : c’est exactement le cas limite qu’on ne voit qu’avec un setup headless réel.
Vous avez raison sur toute la ligne. Login Armor utilisait
home_url()pour générer l’URL de login alors que WordPress core lui-même utilisesite_url()dans sa fonctionwp_login_url(). C’est un héritage du fork d’origine du module Hide Login, et ça casse silencieusement dès quesiteurl≠home(multisite headless, WordPress dans un sous-dossier/wp/, reverse-proxy avecWP_HOME≠WP_SITEURL). Sur les installs standard les deux valeurs sont identiques donc personne ne s’en rend compte.C’est corrigé en 2.1.9, publiée à l’instant sur WP.org. Tout le flux Hide Login bascule sur
site_url()(URL login, redirections, password-reset cookie scope, lostpassword, register, logout, lockout page, prévisualisation Settings). Côté multisite Network Admin, les liens “Dashboard” utilisaient déjàget_site_url($blog_id, $slug), ce qui était correct, donc rien à toucher de ce côté.J’ai aussi ajouté un filtre
login_armor_login_url_baseau cas où vous auriez encore un setup plus exotique (3e hostname behind reverse-proxy, plugin de subdomain mapping qui réécrit l’admin URL) :add_filter( 'login_armor_login_url_base', function( $url, $path, $scheme, $slug ) { // $url contient site_url($path, $scheme) par défaut return 'https://votre-hostname-custom.com' . $path; }, 10, 4 );Mettez à jour depuis Extensions > Mises à jour et l’URL de login devrait pointer sur
admin.monsupersite.com/<votre-slug>/comme attendu. Je suis preneur d’un retour si quelque chose cloche.Merci d’avoir signalé : c’est notre premier retour terrain sur du multisite headless avec Login Armor, et ça aurait pu rester silencieux longtemps.
Forum: Plugins
In reply to: [OGEEAT] Short answer validationMerci de ton retour. Je vais regarder ça et voir si je peux l’intégrer nativement en détectant ce qui est utilisé en termes de builder
Forum: Plugins
In reply to: [OGEEAT] Organisation detectionHi martineva,
Thank you for your kind words, and congratulations on reaching 11/12 so quickly!You’ve found a genuine bug : the GEO score check was looking for the organization data under the wrong internal key, so it could never detect it even when everything is properly configured.
I checked your site and I can confirm that everything is actually working perfectly on the front-end:
Your Organization schema (ProfessionalService) is properly generated with your name, address, phone, logo, sameAs, geo coordinates, etc.
Your Person schema for your author profile is there too
The Article schema correctly links author => publisher => organization
OGEEAT properly defers Open Graph to Yoast, no conflicts
So the only issue is the GEO score display : it shows 11/12 instead of 12/12. Your actual SEO structured data is already complete and correct.I’ve already fixed it and it will be included in the next update (v2.2.1). In the meantime, you can safely ignore that one missing point : your organization is properly detected by search engines and AI.
Thanks for reporting this, first bug report and it’s a real one!
Forum: Plugins
In reply to: [Microsoft Clarity] “Please setup Clarity” notification is always displayedThanks it works now 😉