✅ Nowości, motywy, wtyczki WEB i WordPress. Tutaj dzielimy się wskazówkami i najlepszymi rozwiązaniami dla stron internetowych.

Dodaj Select2 jako InspectorControl w WordPress Gutenberg

6

W przypadku projektu, nad którym pracowałem, chciałem użyć Select2 jako Gutenberga InpectorControl, aby umożliwić mi zastosowanie ustawień do bloku. Ten samouczek zapewni również podstawy potrzebne do wprowadzenia dowolnego komponentu React innej firmy do edytora WordPress Gutenberg.

Select2 to bardzo poręczny zamiennik wybranych pól w Twojej witrynie. W szczególności ma kilka świetnych opcji wyboru wielu przedmiotów.

Gotowy produkt, Select2 w WordPress Gutenberg InspectorControls

Dobrą wiadomością jest to, że nie musiałem budować komponentu React, aby wprowadzić Select2 do Gutenberga, react-selectkomponent Jeda Watsona, już wykonuje świetną robotę, jednak sprawienie, by grał przyjemnie z Gutenbergiem, nie było tak łatwe, jak po prostu podążanie instrukcje.

Po pierwsze, musieliśmy zainstalować komponent w naszej kompilacji. Ponieważ było to w npm, wystarczyło wprowadzić do naszego terminala:

Wprowadzanie Select2 do bloku Gutenberg

Korzystając z repozytorium Zac Gordons Gutenberg Course Git (część fantastycznego kursu programistycznego Zac Gordons Gutenberg) jako podstawy dla mojej wtyczki (w szczególności InspectorControlsprzykładu), react-selectmusiałem dodać następujące dołączenia na górze mojego pliku:

import React from 'react'; import Select from 'react-select';

O nie! Kompilacja daje nam błąd:

Nie znaleziono modułu: Błąd: nie można rozwiązać problemu „zareagować"

Nie obawiaj się, ten świetny artykuł na temat „Jak używać zewnętrznych komponentów React w swoich blokach Gutenberga” autorstwa CSS Igniter przyszedł na ratunek, wystarczy zarejestrować externalssię w naszym webpack.config.jspliku:

externals: { 'react': 'React', 'react-dom': 'ReactDOM', }

Tak jak:

module.exports = { entry: { './assets/js/editor': './blocks/index.js', './assets/js/script': './blocks/script.js', }, output: { path: path.resolve( __dirname ), filename: '[name].js', }, externals: { 'react': 'React', 'react-dom': 'ReactDOM', } ...

Rejestracja InspektoraKontroli

Wewnątrz rolki panelu swojego <InspectorControls>komponentu musisz dodać następujące elementy:

Jeszcze nie skończyliśmy, ponieważ będziemy musieli również zarejestrować selectedOptionatrybut i handleSelectChangefunkcję. Możemy to zrobić tak:

attributes: { selectedOption: { type: 'string', default: null, } },

…a teraz funkcja…

Poczekaj, dlaczego potrzebujemy JSON.stringify()i JSON.parse()wartości? Cóż, ponieważ wartość, którą react-selectakceptuje komponent, jest tablicą, a ponieważ Gutenberg nie pozwoli nam zapisać tej wartości jako tablicy, jest to obejście, którego możemy użyć.

Składamy to razem

Nasz cały InspectorControlsobszar powinien teraz wyglądać tak:

Wygląda dobrze w Gutenberg

Jak widać na zrzucie ekranu, działa to całkiem nieźle:

Dodaj Select2 jako InspectorControl w WordPress GutenbergSelect2 jako Gutenberg InspectorControl

Idąc dalej

Użyłem tej kontroli Inspector w mojej wtyczce Secure Blocks for Gutenberg, dowiedz się, jak wypełniłem kontrolkę Select2 dynamicznymi danymi z WordPress REST API.

Źródło nagrywania: wholesomecode.ltd

Ta strona korzysta z plików cookie, aby poprawić Twoje wrażenia. Zakładamy, że nie masz nic przeciwko, ale możesz zrezygnować, jeśli chcesz. Akceptuję Więcej szczegółów