# API des données

> L'API des données (@wordpress/data) centralise l'état de l'éditeur de blocs dans des magasins consultables et modifiables, que les blocs et extensions lisent via des sélecteurs et actions.

- Auteur : Clément Hadrot
- Publié le : 2026-09-25
- Mis à jour le : 2026-09-25
- URL : https://wpmoderne.dev.wordpress-developpement.fr/lexique/api-donnees-wp/

Dès que plusieurs panneaux de l'éditeur doivent réagir à la même information, par exemple savoir si un article est en cours d'enregistrement ou quel bloc est sélectionné, il faut un endroit unique où cette information vit. C'est le rôle du paquet `@wordpress/data` : il organise l'état de l'application en magasins (« stores ») nommés, chacun exposant des *sélecteurs* pour lire une donnée et des *actions* pour la modifier, un peu comme Redux dont il s'inspire directement.

## Fonctionnement dans WordPress

L'éditeur de blocs (Gutenberg) déclare plusieurs magasins natifs : `core/editor` pour l'article en cours, `core/block-editor` pour les blocs et la sélection, `core` pour les données REST comme les articles ou les taxonomies. Une extension peut lire ces magasins avec le hook `useSelect`, déclencher une action avec `useDispatch`, ou créer son propre magasin avec `registerStore` ou l'API moderne `createReduxStore` pour partager un état entre plusieurs de ses composants.

## Exemple

```
import { useSelect } from '@wordpress/data';
import { store as editorStore } from '@wordpress/editor';

const titre = useSelect(
  ( select ) => select( editorStore ).getEditedPostAttribute( 'title' ),
  []
);
```

## Bon à savoir

- Les sélecteurs sont mis en cache et ne se recalculent que si les données dont ils dépendent changent, ce qui évite de refaire des rendus inutiles sur des articles volumineux.
- Contrairement à l'API d'interactivité, pensée pour le rendu côté visiteur du site, l'API des données concerne exclusivement l'administration et l'éditeur.
- Un magasin personnalisé mal nettoyé (jamais désinscrit) peut subsister entre deux chargements de page dans certains contextes de test, un piège classique lors du développement d'une extension.
