Add WordPress filter hook to customize or disable Permissions-Policy client hint headers
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Accessibilité débutants
- 72/100
- Type d'issue
- Fonctionnalité
- Clarté
- Clairement spécifiée
- Activité
- Active
- Domaine
- backend, documentation
Piste de recherche
Commence dans inc/admin.php à get_permissions_policy() et add_permission_policy(), les deux fonctions nommées dans l’issue, et trace l’endroit où la valeur de Permissions-Policy est passée à header(). Enveloppe le tableau clé/valeur dans apply_filters() avec un nom de hook documenté, et court-circuite avant l’envoi lorsque le résultat filtré est false, une chaîne vide ou un tableau vide. Terminé signifie que l’en-tête peut être supprimé ou modifié depuis un thème ou une extension, et que le hook est documenté dans la documentation développeur.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Impact: 60 · Confidence: 95 · Complexity: 20
Description
Problem
The Optimole WordPress plugin automatically emits a Permissions-Policy: ch-viewport-width=(self ...) header in inc/admin.php to enable Client Hints / Smart Image Scaling. However, there is currently no WordPress filter hook wrapping this response header. Site administrators who want to remove or customize the header (for example, to prevent low-resolution image selection on cached pages or mobile viewports where text density is critical) must write custom code to strip headers late in execution, which is fragile and prone to breaking during plugin updates.
Desired Behavior
Expose a WordPress filter hook (e.g. optimole_permissions_policy_header or optml_permissions_policy) allowing developers to filter the header key/value array or disable the Permissions-Policy header completely before it is sent via header().
Acceptance Criteria
- Introduce a WordPress filter hook surrounding the generation/output of the
Permissions-Policyheader ininc/admin.php. - Returning
false, an empty string, or an empty array from the filter suppresses the header from being sent. - Document the filter hook for site developers in technical/developer docs.
Customer Context
John Green (Founder & CEO at Fighting Arts Health Lab, starter-2 paid subscriber) observed that client hints were sending smaller 414px images to mobile viewports, which rendered text inside card images visibly soft/blurry on high-density mobile screens. To fix this, his team decided to strip the ch-viewport-width Permissions-Policy header. Because Optimole currently has no filter hook on get_permissions_policy() / add_permission_policy() in inc/admin.php, they were forced to strip the header with custom code after Optimole sends it. He requested a supported filter or setting so custom header modifications won't break on plugin updates.
Root Cause Analysis
The customer's underlying goal is to control whether Optimole sends the Permissions-Policy Client Hint header without having to write fragile post-header removal scripts. Optimole's inc/admin.php sends hardcoded header directives without passing them through WordPress apply_filters(). Providing a developer filter hook directly addresses this capability gap in a standard WordPress-idiomatic way.
Source: HelpScout #3513913699
Generated by feature-request-triage workflow (ID: feature-request-triage_6af9bb9d556245.38695477)
- Langage dominant
- PHP
- Étoiles
- 74
- Forks
- 14
- Merge moyen
- 1 j 20 h
- PR mergées (30 j)
- 39
Préparer son environnement
- Fournit un Dockerfile ou un fichier Docker Compose
- Propose un modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de Codeinwp/optimole-wp
-
Page profiler never stores above-the-fold background images: `b` is always sent with empty selector mapsPeut-être pris @girishpanchal30 l’a pris il y a 9 jours. Ouvertebug
Difficulté 2/5 1-3 heures Accessibilité débutants 77/100
Codeinwp/optimole-wp#1216 · 1 personne assignée ·
Les mainteneurs répondent en général sous 1 jour
-
customer report feature-request-triage
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 35/100
Codeinwp/optimole-wp#1231 ·
Les mainteneurs répondent en général sous 1 jour
-
bug-report customer report
Difficulté 4/5 3-5 jours Accessibilité débutants 56/100
Codeinwp/optimole-wp#1211 ·
Les mainteneurs répondent en général sous 1 jour
-
customer report feature-request-triage
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 35/100
Codeinwp/optimole-wp#1179 ·
Les mainteneurs répondent en général sous 1 jour
-
Add setting to disable Optimole URL rewriting for social meta tags (og:image / twitter:image)Ouvertecustomer report feature-request-triage
Difficulté 4/5 3-5 jours Accessibilité débutants 54/100
Codeinwp/optimole-wp#1178 ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de Codeinwp/optimole-wp
Issues similaires
-
🧠 Admin
Difficulté 2/5 1-3 heures Accessibilité débutants 62/100
Les mainteneurs répondent en général sous 1 jour
-
RSA PKCS#1 v1.5 verify fails for SHA-512/224, SHA-512/256 and SHA-3 (UnhandledMatchError on 4.x)Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 72/100
Les mainteneurs répondent en général sous 1 jour
-
claude
Difficulté 2/5 1-3 heures Accessibilité débutants 74/100
sprain/sprainocchio#38 ·
Les mainteneurs répondent en général sous 1 jour
-
sync-en
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
Les mainteneurs répondent en général sous 1 jour