Skip to content

✨ feat: add patterns to the "/" slash inserter - #140

Open
charl0tee wants to merge 1 commit into
futurefrom
feat/pattern-slash-inserter
Open

✨ feat: add patterns to the "/" slash inserter#140
charl0tee wants to merge 1 commit into
futurefrom
feat/pattern-slash-inserter

Conversation

@charl0tee

Copy link
Copy Markdown
Contributor

Remplace la #139, fermée automatiquement par GitHub lors du changement de branche cible (mainfuture).

Pourquoi

Dans l'éditeur de blocs, taper / ne propose que des types de blocs (et les patterns synchronisés wp_block) : le complèteur blocks de @wordpress/block-editor lit getInserterItems(), qui ignore les patterns enregistrés en PHP. Ceux-ci ne sont donc accessibles que via l'onglet « Compositions » de l'inserteur.

Ce que fait la PR

wordpress/theme/src/editor/pattern-slash-inserter.tsx :

  • filtre editor.Autocomplete.completers et enveloppe le complèteur blocks — un seul complèteur peut être actif par préfixe /, il est donc impossible d'en ajouter un second ;
  • ajoute aux résultats les patterns de __experimentalGetAllowedPatterns(), filtrés sur titre / description / mots-clés / catégories (recherche insensible à la casse et aux accents), 6 maximum, précédés de l'icône « composition » ;
  • exclut les patterns Block Types: core/post-content, qui sont des contenus de démarrage de page entière et non des sections à insérer au milieu d'un contenu ;
  • insère les blocs du pattern via cloneBlock (contenu non synchronisé, comme l'inserteur habituel).

Les patterns n'apparaissent qu'à partir du premier caractère tapé, pour laisser la liste par défaut de / inchangée.

Note d'implémentation

useItems renvoie un tableau mémoïsé : une nouvelle référence à chaque rendu fait boucler le onChangeOptions du composant Autocomplete (erreur React #185).

Tests

Vérifié sur tipee.ch (même structure de thème) : dans l'éditeur d'une page, /hero propose bien les patterns « Hero » du thème et la sélection insère la section complète, sans erreur console.

🤖 Generated with Claude Code

The core slash inserter only lists block types and synced patterns, so
theme patterns registered in PHP were only reachable from the inserter's
"Patterns" tab. Wrap the core `blocks` completer to append the patterns
matching what is typed after the "/".

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant