# plugin_action_links ajoute un lien de réglages rapide à la liste

> Pour les développeurs qui veulent améliorer l'ergonomie de leur extension dans l'écran d'administration, sans passer par les callables de première classe.

- Auteur : WordPress Développement
- Publié le : 2022-04-24
- Mis à jour le : 2022-04-24
- Catégorie : Extensions
- URL : https://www.wpmoderne.fr/extensions/plugin-action-links-lien-reglages/

## L’essentiel

- Le filtre plugin_action_links_{fichier} cible une extension précise
- Un lien Réglages ajouté ici évite un détour par le menu principal
- La fonction reste compatible avec toutes les versions récentes de PHP

`add_filter( 'plugin_action_links_' . plugin_basename( __FILE__ ), 'mon_extension_lien_reglages' )` — cette seule ligne suffit à ajouter un lien « Réglages » directement sur la ligne de l'extension, dans l'écran « Extensions » de l'administration, juste à côté de « Désactiver » et « Supprimer ». Un détail d'ergonomie qui change réellement l'expérience d'un administrateur pressé.

Sans ce lien, retrouver la page de réglages d'une extension impose souvent de naviguer dans un sous-menu dédié, parfois placé à un endroit peu intuitif du menu d'administration. Le filtre `plugin_action_links_{fichier}` corrige ce problème en ajoutant un accès direct, là où l'administrateur regarde en premier : la liste des extensions elle-même.

## Le filtre ciblé, extension par extension

Contrairement à d'autres hooks génériques, ce filtre est spécifique à chaque extension : son nom intègre le chemin relatif du fichier principal de l'extension, obtenu via `plugin_basename( __FILE__ )`. Cela garantit que le lien ajouté n'apparaît que sur la ligne de l'extension concernée, sans affecter les autres extensions installées sur le même site.

> L'essentiel à retenir : Le filtre plugin_action_links_{fichier} cible une extension précise ; Un lien Réglages ajouté ici évite un détour par le menu principal ; La fonction reste compatible avec toutes les versions récentes de PHP

## Implémentation complète

```
function mon_extension_lien_reglages( array $liens ): array {
    $url_reglages = admin_url( 'admin.php?page=mon-extension-reglages' );
    $lien_reglages = sprintf(
        '<a href="%s">Réglages</a>',
        esc_url( $url_reglages )
    );

    array_unshift( $liens, $lien_reglages );

    return $liens;
}
add_filter(
    'plugin_action_links_' . plugin_basename( __FILE__ ),
    'mon_extension_lien_reglages'
);
```

`array_unshift()` place le nouveau lien en première position de la liste, avant « Désactiver ». Ce choix n'est pas anodin : un lien de réglages placé en premier attire naturellement le regard, alors qu'un ajout en fin de liste se perd souvent visuellement à côté des actions de gestion du cycle de vie de l'extension.

## Ajouter un second lien, vers la documentation

Le même filtre accepte plusieurs liens ajoutés simultanément. Il est courant d'y ajouter également un lien vers la documentation ou le support :

```
function mon_extension_liens_supplementaires( array $liens ): array {
    $liens[] = '<a href="https://exemple.com/documentation" target="_blank">Documentation</a>';
    return $liens;
}
add_filter(
    'plugin_action_links_' . plugin_basename( __FILE__ ),
    'mon_extension_liens_supplementaires'
);
```

## Distinguer plugin_action_links et plugin_row_meta

Un point de confusion fréquent oppose ce filtre à `plugin_row_meta`, qui ajoute des liens sur la ligne d'informations sous le nom de l'extension (version, auteur), et non sur la ligne d'actions à droite. Les deux hooks se ressemblent par leur usage, mais ciblent des zones distinctes de l'écran :

| Hook | Emplacement | Usage typique |
| --- | --- | --- |
| `plugin_action_links_{fichier}` | Ligne d'actions (Activer, Réglages, Supprimer) | Accès rapide aux réglages |
| `plugin_row_meta` | Ligne méta sous le nom (Version, Voir les détails) | Liens vers documentation, changelog, support |

## Un piège fréquent : oublier plugin_basename()

Coder en dur le nom du fichier plutôt que d'utiliser `plugin_basename( __FILE__ )` casse le filtre dès que le dossier de l'extension est renommé, par exemple lors d'une installation manuelle où le nom du dossier diffère de celui du dépôt d'origine. Utiliser systématiquement cette fonction, plutôt qu'une chaîne écrite en dur, évite ce genre de régression silencieuse.

- Toujours construire le nom du filtre avec `plugin_basename( __FILE__ )`, jamais un chemin en dur.
- Placer le lien de réglages en première position pour une meilleure visibilité.
- Réserver `plugin_row_meta` aux liens informatifs, distincts de l'action de réglages elle-même.

> Un lien de réglages bien placé économise des clics répétés sur toute la durée de vie d'une extension — un petit détail qui pèse beaucoup à l'usage quotidien.

## En résumé

Ajouter un lien de réglages via `plugin_action_links_{fichier}` demande une dizaine de lignes de code, mais améliore concrètement l'ergonomie perçue d'une extension dans l'administration. C'est un détail que les utilisateurs remarquent rarement consciemment, mais dont l'absence, elle, finit par se faire sentir à l'usage.
