


Enregistrement des paramètres pour un bloc WordPress personnalisé dans l'éditeur de blocs
Beaucoup de travail a été fait dans cette série de tutoriels! Nous avons créé un bloc WordPress personnalisé qui récupère les données de l'API externe et les rend sur l'avant. Nous avons ensuite prolongé les travaux afin que les données puissent également être rendues directement dans l'éditeur de blocs WordPress. Après cela, nous avons créé l'interface utilisateur des paramètres pour ce bloc à l'aide des composants du package WordPress InspectorControls.
La dernière étape consiste à enregistrer les options de paramètres. Si nous nous souvenons du contenu du post précédent, nous avons réellement pu "enregistrer" nos choix dans l'interface utilisateur des paramètres de bloc, mais ces choix n'étaient pas stockés nulle part. Si nous effectuons des sélections, les enregistrons, puis revenons à la publication, les paramètres seront complètement réinitialisés.
Fermons la boucle et enregistrons ces paramètres afin qu'ils puissent être persistés la prochaine fois que vous modifierez un message qui contient nos blocs personnalisés!
Utilisation de l'API externe dans WordPress Block
- Données de rendu frontal
- Données de rendu back-end
- Créer des paramètres personnalisés UI
- Enregistrer les paramètres de bloc personnalisé (ici!)
- en utilisant des données d'API en temps réel (à venir bientôt)
Enregistrer les propriétés des paramètres
Nous utilisons une API qui fournit des classements d'équipe de football, que nous utilisons pour obtenir des écrans de classement basés sur le pays, la ligue et la saison. Nous pouvons créer de nouvelles propriétés pour chaque propriété comme indiqué ci-dessous:
// index.js attributes: { data: { type: "object", }, settings: { type: "object", default: { country: { type: "string", }, league: { type: "string", }, season: { type: "string", }, }, }, },
Ensuite, nous devons définir les propriétés de LeagueSettings.js. Chaque fois que le comboboxControl dans notre paramètres de l'interface utilisateur est mis à jour, nous devons définir les propriétés à l'aide de la méthode setAttributes()
. Ceci est plus simple lorsque nous n'utilisons qu'un seul point de terminaison de données. Mais maintenant, nous avons plusieurs entrées, c'est un peu plus compliqué.
C'est ainsi que je vais l'organiser. Je vais créer un nouvel objet dans LeagueSettings.js qui suit la structure des propriétés de réglage et de leurs valeurs.
// LeagueSettings.js let localSettings = { country: attributes.settings.country, league: attributes.settings.league, season: attributes.settings.season, };
J'ai également modifié la variable d'état initiale de NULL à la variable de réglage correspondante.
// LeagueSettings.js const [country, setCountry] = useState(attributes.settings.country); const [league, setLeague] = useState(attributes.settings.league); const [season, setSeason] = useState(attributes.settings.season);
Dans chaque handle______Change()
, je créerai un setLocalAttributes()
avec un paramètre qui a cloné à l'aide de l'opérateur d'extension et écrase l'objet localSettings
précédent avec de nouvelles valeurs de pays, de ligue et de saison.
// LeagueSettings.js function handleCountryChange(value) { // 初始代码 setLocalAttributes({ ...localSettings, country: value }); // 代码的其余部分 } function handleLeagueChange(value) { // 初始代码 setLocalAttributes({ ...localSettings, league: value }); // 代码的其余部分 } function handleSeasonChange(value) { // 初始代码 setLocalAttributes({ ...localSettings, season: value }); // 代码的其余部分 }
Nous pouvons le définir comme ceci: setLocalAttributes()
// LeagueSettings.js function setLocalAttributes(value) { let newSettings = Object.assign(localSettings, value); localSettings = { ...newSettings }; setAttributes({ settings: localSettings }); }Par conséquent, nous utilisons
pour fusionner les deux objets. Nous pouvons ensuite cloner l'objet Object.assign()
retour à newSettings
car nous devons également considérer chaque propriété de réglage chaque fois qu'une nouvelle sélection est effectuée et des modifications se produisent. localSettings
comme d'habitude pour définir l'objet final. Vous pouvez confirmer si les attributs ci-dessus changent en mettant à jour la sélection dans l'interface utilisateur. setAttributes()
dans Devtools pour trouver les propriétés. console.log()
Regardez attentivement cette capture d'écran. Ces valeurs sont stockées dans attributes.settings
. Grâce au Hook useState()
, réagir les redevateurs chaque fois que nous apportons des modifications dans les paramètres, nous pouvons donc le voir se produire en temps réel.
Afficher la valeur dans les paramètres de bloc UI
Le stockage des valeurs des paramètres dans les options de contrôle eux-mêmes n'est pas très utile car chaque contrôle dépend des valeurs d'autres paramètres (par exemple, le classement par ligue dépend de la saison sélectionnée). Mais il est très utile lorsque les valeurs de réglage sont statiques et définissent indépendantes les unes des autres.
sans compliquer les paramètres actuels, nous pouvons créer une autre section dans le panneau Paramètres pour afficher les propriétés actuelles. Vous pouvez choisir votre propre façon d'afficher la valeur des paramètres, mais j'importerai un composant de pointe dans le package @wordpress/components
:
// index.js attributes: { data: { type: "object", }, settings: { type: "object", default: { country: { type: "string", }, league: { type: "string", }, season: { type: "string", }, }, }, },
Ici, je vérifierai conditionnellement les valeurs avant de les afficher dans le composant de pointe:
// LeagueSettings.js let localSettings = { country: attributes.settings.country, league: attributes.settings.league, season: attributes.settings.season, };
C'est ainsi que cela fonctionne dans l'éditeur de blocs:
Les données APIsont plus puissantes lorsque les données en temps réel peuvent être affichées sans les mettre à jour manuellement à chaque fois. Nous explorerons cela dans la prochaine partie de cette série.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Dans cet article, Blackle Mori vous montre quelques-uns des hacks trouvés tout en essayant de repousser les limites du support HTML de Cohost. Utilisez-les si vous osez, de peur que vous soyez également étiqueté un criminel CSS.

Les curseurs personnalisés avec CSS sont excellents, mais nous pouvons faire passer les choses au niveau supérieur avec JavaScript. À l'aide de JavaScript, nous pouvons passer entre les états du curseur, placer du texte dynamique dans le curseur, appliquer des animations complexes et appliquer des filtres.

Les animations CSS interactives avec des éléments se ricochent semblent plus plausibles en 2025. Bien qu'il soit inutile de mettre en œuvre Pong dans CSS, la flexibilité et la puissance croissantes de CSS renforcent le soupçon de Lee selon lequel un jour, ce sera un jour

Conseils et astuces sur l'utilisation de la propriété CSS Back-Filter pour styliser les interfaces utilisateur. Vous apprendrez à superposer des filtres en toile de fond entre plusieurs éléments et à les intégrer à d'autres effets graphiques CSS pour créer des conceptions élaborées.

Eh bien, il s'avère que les fonctionnalités d'animation intégrées de SVG n'ont jamais été obsolètes comme prévu. Bien sûr, CSS et JavaScript sont plus que capables de porter la charge, mais il est bon de savoir que Smil n'est pas mort dans l'eau comme précédemment

Yay, laissez-le saut pour le wat-wrap: joli atterrissage dans la technologie safari aperçu! Mais méfiez-vous qu'il est différent de la façon dont il fonctionne dans les navigateurs de chrome.

Cette mise à jour de CSS-Tricks met en évidence des progrès significatifs dans l'Almanac, des apparitions de podcast récentes, un nouveau guide CSS Counter et l'ajout de plusieurs nouveaux auteurs contribuant un contenu précieux.

La plupart du temps, les gens présentent la fonctionnalité de Tailwind avec l'un des utilitaires à propriété unique de Tailwind (qui modifie une seule déclaration CSS). Lorsqu'il est présenté de cette façon, @Apply ne semble pas du tout prometteur. So évidence


Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Adaptateur de serveur SAP NetWeaver pour Eclipse
Intégrez Eclipse au serveur d'applications SAP NetWeaver.

DVWA
Damn Vulnerable Web App (DVWA) est une application Web PHP/MySQL très vulnérable. Ses principaux objectifs sont d'aider les professionnels de la sécurité à tester leurs compétences et leurs outils dans un environnement juridique, d'aider les développeurs Web à mieux comprendre le processus de sécurisation des applications Web et d'aider les enseignants/étudiants à enseigner/apprendre dans un environnement de classe. Application Web sécurité. L'objectif de DVWA est de mettre en pratique certaines des vulnérabilités Web les plus courantes via une interface simple et directe, avec différents degrés de difficulté. Veuillez noter que ce logiciel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

VSCode Windows 64 bits Télécharger
Un éditeur IDE gratuit et puissant lancé par Microsoft
