« j’ai un plugin, dit il. Comment puis je me préparer pour Gutenberg? » Lamprsquohistoire est simple Gutenberg est une nouvelle expérience d’édition dans WordPress qui sera intégrée avec Core dans la prochaine version majeure. De nombreux plug ins qui ne répondent pas à cette exigence seront éliminés. Pour ce faire, devez ajuster le plug in Gutenberg avant quamprsquoil ne soit trop tard. Qui est intéressé? Presque tous les plug ins associés à lamprsquoéditeur post sont affectés par Gutenberg. Par exemple, si votre plug in ajoute un bouton à tinymce pour insérer un code court dans lamprsquoéditeur, de mauvaises nouvelles Ce sera la fin.
Comment adapter votre plug in WordPress au tutoriel Gutenberg: block API cliquez sur Twitter
Le Code court continuera aussi à fonctionner comme avant, mais ce namprsquoest quamprsquoun simple noeud de texte dans lamprsquoéditeur, et tous les plug ins de code court de Gutenberg suivront son interface utilisateur de bloc et seront plus faciles à utiliser. Donc oui, les utilisateurs préfèrent les plug ins créés pour lamprsquoexpérience Gutenberg. Les plug ins qui resteront en retard seront remplacés par des plug ins concurrents. Pour donner une idée, voici un exemple de la façon dont lamprsquoexpérience standard de lamprsquoéditeur utilisateur se comporte dans notre plug in (A), puis dans Gutenberg (b) le plug in est optimisé pour cela. (Nations Unies) (b) Namprsquoaie pas peur! Nous sommes ici pour aider à préparer au plugin Gutenberg. E
Il existe de nombreuses façons damprsquointégrer un plug in dans Gutenberg, selon la façon dont le plug in fonctionne, comme nous le verrons dans cet article. Gutenberg a écrit sur React quelque chose à savoir à lamprsquoavance. Le plug in Gutenberg est codé en javascript, ce qui est également une transformation approximative pour les développeurs qui namprsquoutilisent que le codage PHP. Même si namprsquoavez pas besoin de savoir comment créer un plug in pour Gutenberg, avez besoin des bases de JavaScript. avez déjà utilisé REACT et jsx, avez des problèmes similaires.
Bien que Gutenberg namprsquoait pas assez de documents officiels, son dépôt github fournit aux développeurs une grande quantité damp précieuses. voulez en savoir plus sur le développement de Gutenberg, devez suivre de près ce qui se passe dans le dépôt github de Gutenberg, car les projets progressent très rapidement et changent chaque jour. Comment ajuster le plug in pour Gutenberg lamprsquoAPI Gutenberg nous fournit de nombreuses façons damprsquoétendre lamprsquoéditeur, comme lamprsquoAPI bloc, lamprsquoAPI Code court, et ainsi de suite. Le type damprsquoapi que nous utilisons dépend du type de plug in que nous construisons.
votre plug in est un simple plug in de code court, pouvez utiliser lamprsquoAPI Block pour créer un beau bloc pour lamprsquoéditeur. Mais si votre plug in utilise une méta boîte complexe qui namprsquoa pas assez de blocs, nous pouvons utiliser lamprsquoAPI de barre latérale. De plus, nous utiliserons une gamme damprsquooutils de développement JavaScript modernes comme nodejs, NPM, webpack et esnext. Nous fournirons des exemples de fichiers afin que namprsquoayez pas à soucier de configurer votre environnement de développement. Dans nous verrons comment utiliser lamprsquoAPI Block pour rendre votre plug in compatible avec Gutenberg. nécessaire, nous entrerons damprsquoautres méthodes (API de barre latérale, panneau de publication, barre damprsquoétat et API similaires) dans la deuxième partie.
Vous trouverez des exemples de toutes les références dans ce dépôt Githu
B. go to top Gutenberg development environment Gutenberg development needs to Configure a number of tools, such as NPM, webpack, Babel and jsx. Cela demande beaucoup de temps et damprsquoefforts, donc nous avons préparé lamprsquoenvironnement pour . Le modèle Gutenberg est un plug in avec un minimum damprsquoexemples de configuration et de développement Gutenberg. Contient des exemples de blocs et de barres latérales. Vous pouvez lamprsquoutiliser pour étendre un bloc personnalisé.
Vous pouvez diviser ou cloner la Bibliothèque de modèles Gutenberg dans votre contenu plug in WP et lamprsquoutiliser comme environnement de développement.
Après cela, devez installer nodejs sur votre ordinateur pour commencer. Allez dans le dossier des modèles Gutenberg et lancez NPM install à partir de maintenant, et devez connaître les trois commandes que utiliserez dans le processus de développement: NPM install – installez les dépendances du projet lorsque clonez le projet. NPM Run Dev – Remplissez le code pendant le développement. Vous devez lamprsquoexécuter une fois et il continuera à voir les changements. NPM Run Build – une fois le processus de développement terminé, remplissez le Code pour optimiser la construction. Block API Block est lamprsquoélément central de Gutenberg et est un éditeur basé sur block. LamprsquoAPI Block permet de créer des blocs pour Gutenberg. Vous pouvez créer des blocs qui rendent le HTML de base, le Code court, ou même créer des blocs dynamiques pour afficher (par exemple) vos derniers messages.
Ce processus est basé sur le plug in existant dans notre exemple, et nous utiliserons le Code Twitter Short click sur le bloc Gutenberg. Ce raccourci de tweet de clic génère une boîte de tweet contenant du texte et un bouton de tweet. Ainsi:
Notre code Court est le suivant: [Cliquez sur le bouton tweet =
Tu tweets. Sujet: cliquez sur Twitter ou cliquez sur Twitter alt comme sujet de boîte. Utilisez lamprsquoAPI Block pour ajuster le plug in Gutenberg il y a deux façons de le faire avec Gutenberg, soit nous pouvons rendre le HTML à lamprsquoavant, soit nous pouvons utiliser le bloc Gutenberg pour rendre le Code court à lamprsquoavant. Pour nous allons faire le dernier.
Tout le Code se trouve dans la Bibliothèque Hello Gutenberg plug in sur github. Vous pouvez Cloner le dépôt pour voir les plug ins en cours damprsquoexécution ou modifier le Code. Tout damprsquoabord, nous devons utiliser la ressource enqueue _ Block pour ajouter des scripts et des styles à lamprsquoéditeur Gutenberg: * *
Ajouter des éditeurs frontaux, Javascript et CSS
*
Fonction Ciao _ Gutenberg scripts () {
$Block path = amplsquo distance block. JSamprsquo
$stylepath = amplsquo distance bloc. CSSamprsquo
Joindre le fichier JS du bloc bundle
WP _ enqueue script
Plugins _ URL ($blockpath, file u u),
[
Filemtime (plugin _ Dir path (file) $ Chemin de blocage)
)
Fusionner les blocs damprsquoéditeur et les styles frontaux
Wp u enqueue u style
Plugins _ URL ($style path, u file),
[1jeemaa1],
Filemtime (plugin _ Dir path (file) $ Chemin de style)
)
}
Les crochets de script fonctionnent dans les crochets de lamprsquoéditeur de bloc
Ajouter _ action (amplsquoenqueue Block Assetsamprsquo,amprsquo Hello Gutenberg scriptsamprsquo) Nous avons ajouté quatre dépendances au script que nous utiliserons dans le bloc. Examinons damprsquoabord ces passe temps:
WP i18n est une fonction damprsquointernationalisation pour la version Gutenberg, comme (). La fonction registerblocktype utilisée par les blocs WP pour enregistrer les blocs. Nous utilisons des scripts damprsquoéditeur WP et des composants WP pour différents composants du bloc. Maintenant que nous avons mis vos ressources en file damprsquoattente, nous pouvons commencer à écrire des blocs dans le fichier src block. JS. Importer des dépendances si utilisez un fichier modèle Gutenberg, camprsquoest votre bloc de fichiers. JS devrait avoir un struttu
Blocs de base disponibles pour créer des plug ins Gutenberg: * *
Bibliothèque de blocs internes
*
Constante uwp. I18n
Constante {registerblocktype} = WP. Obstacles
* *
Verrouillage du Journal
*
Export default registerblocktype (amplsquoGutenberg Boilerplate blockamprsquo {Export default registerblocktype
Block title
Titre: (
Description du bloc
Description: (amplsquoexemple de blocamprsquo),
Catégorie de bloc
Catégorie:
Icône de verrouillage
Icône:
Verrouiller les mots clés
Mots clés:
(
(
(
],
Propriétés: {
},
Modifier la définition de lamprsquointerface
Édition: objets de scène = ampgt
Retour (
[Hello Backend]}
)
},
Définition de lamprsquointerface frontale
Save: prop = ampgt
Retour (
{Hello frontend}
)
},
}) Vous pouvez lancer NPM Run Dev pour commencer à compiler notre Code en temps réel.
Tout damprsquoabord, nous importerons tous les composants et bibliothèques nécessaires au niveau supérieur: * *
Dépendances de bloc
*
Importer un nom de classe à partir du nom de classe
* *
Bibliothèque de blocs internes
*
Constante uwp. I18n
Constante {registerblocktype} = WP. Obstacles
Coût
Richtext,
Inspection par un inspecteur,
Contrôle des blocs,
= WP. Édition
Coût
Corps du panneau,
Contrôle de la zone de texte,
Contrôle de texte,
Dashicon,
Barre damprsquooutils,
Boutons
Description de la commande,
= WP. Composants La première importation est le nom de classe que nous avons installé en utilisant NPM pour utiliser plus damprsquoune classe dans notre Code parce que jsx ne permet pas plus damprsquoune classe dans un élément. Nous examinerons damprsquoautres composants importés lors de lamprsquoutilisation. Maintenant, nous allons définir quatre attributs pour le bloc Gutenberg, comme notre code Court: attributs: {
Twitter: {
Type:
},
Invitation Twitter: {
Type:
},
Boutons:
Type: »
String amplsquo,
Par défaut: (amplsquotweetamprsquo),
},
Sujet: {0}
Type:
Par défaut: false,
},
}, comme pouvez le voir, tous les attributs sont identiques à notre code court. Toutes les propriétés ont une clé de type qui indique à Gutenberg son type de données. Vous pouvez utiliser des chaînes, des nombres, des booléens et des objets comme types acceptables. Certaines propriétés contiennent également des valeurs par défaut. Les propriétés peuvent également avoir damprsquoautres propriétés, telles que la source et le sélecteur, que nous namprsquoutilisons pas dans notre exemple, mais pouvez en savoir plus ici. Maintenant, nous allons construire lamprsquointerface damprsquoédition du bloc, qui va afficher: lamprsquoutilisateur va le voir pendant que le bloc est édité à Gutenberg. Pour obtenir une idée de base, nous pouvons damprsquoabord coder le bloc et le construire en remplaçant les zones suivantes dans le Code: Modifier la définition de lamprsquointerface
Édition: objets de scène = ampgt
Retour (
[Hello Backend]}
)
}, avec le code suivant: modifier la définition de lamprsquointerface
Édition: objets de scène = ampgt
Retour
Citrouille et pingouin
G)
}, cela devrait faire connaître notre résultat final. Ça ressemble à ça: Le premier élément du bloc est la zone de texte du tweet. Nous le remplacerons par un champ de texte modifiable, similaire au bloc de titre Gutenberg. Nous remplacerons le texte codé dur par le composant richtext précédemment importé.
Notre composant richtext a cinq thèmes. Le format est une chaîne parce que nous utiliserons un code court pour afficher les éléments à lamprsquoavant. nous voulons utiliser un sélecteur dans une propriété, le format devrait être un tableau. Par défaut, richtext a quelques options de formatage, telles que gras et italique, que nous désactivons en passant un tableau vide dans le paramètre formattingcontrols. Le substituant est le texte du substituant
Avant cet article. Nous avons attribué trois classes au contrôle en utilisant la fonction classnames. La troisième classe est active et namprsquoest affichée que si la valeur de lamprsquoattribut sujet est vraie. Sa fonction onChange change la propriété Theme à true False. Enfin, le composant dashicon affiche lamprsquoicône du contrôle. Nous devons également modifier le Code de bloc pour gérer ces changements. Nous devons remplacer les lignes suivantes: Utilisation:
Nous vérifions si les attributs du sujet sont vrais ou faux et assignons une classe au bloc en conséquence. Votre bloc devrait maintenant ressembler à ceci: Nous avons terminé le côté JavaScript du bloc Gutenberg. Vous trouverez ici le code source complet du fichier. Maintenant, nous allons compléter notre module en gérant la sortie côté serveur. Le rendu côté serveur Gutenberg permet damprsquoafficher des blocs à lamprsquoavant en utilisant le rendu côté serveur. Le rendu côté serveur nous permet de créer des blocs pour le Code court. Tout damprsquoabord, Nous remplacerons la méthode Save par le Code: Front end Interface Definition ci dessous pour nous assurer que la méthode Save renvoie null
Enregistrer () {
Rendu en PHP
Zéro
}, nous utiliserons la fonction PHP Register _ block type pour enregistrer les types de blocs en PHP: if (Register block type) {
Joindre le rendu côté serveur au rappel de rendu
Register _ Block Type
« render _ callback» = ampgt « Hello Gutenberg Block callback»,
« attributs» = ampgt tableau
« type amplsquo= ampgtamprsquo string»,
()
« type amplsquo= ampgtamprsquo string»,
()
« bouton» = ampgt tableau
« type amplsquo= ampgtamprsquo string»,
« par défaut» = ampgt « twitter»,
()
« sujet» = ampgt tableau
« type» = ampgt « booléen»,
« default» = ampgt false,
()
()
[1]
)
} notre fonction Register _ block type. Damprsquoabord, on lui passe.