Гутенберг Све што требате знати о ВордПресс-у 'Латест Едитор
Гутенберг је нови уредник за ВордПресс који ће потпуно замените тренутни ТиниМЦЕ уређивач. То је амбициозан пројекат који ће вероватно променити ВордПресс на много начина и утицати на редовне крајње кориснике и програмере, посебно оне који зависе од екрана за уређивање за рад на ВордПресс-у. Ево како то изгледа.
Гутенберг такође представља нову парадигму у ВордПресс-у “Блокирати”.
“Блокирати” је апстрактни термин који се користи за описивање јединице маркупа који су састављени од садржаја или изгледа веб странице. Идеја комбинује концепте онога што у ВордПресс-у данас остварујемо кратки кодови, прилагођени ХТМЛ и уграђивање открића у један конзистентан АПИ и корисничко искуство.
Постављање пројекта
Знајући чињеницу да је Гутенберг изграђен на врху Реацт-а, неки програмери су забринути да ће преграда је превисока за почетнике у развоју за развој Гутенберга.
Подешавање Реацт.јс може бити прилично дуготрајно и збуњујуће ако сте тек почели са њим. Требаће вам барем ЈСКС трансформатор, Бабел, у зависности од вашег кода можда ће вам требати Бабел плугинс, и Бундлер као што је Вебпацк, Роллуп или Парцел.
срећом, неки људи унутар ВордПресс заједнице су се појачали и покушавају да учине да Гутенберг буде што лакши за свакога. Данас имамо алат који ће тако генерисати Гутенбергов предложак можемо одмах почети писати код уместо да се збуњују алатима и конфигурацијама.
Направите блок Гутен
Тхе цреате-гутен-блоцк
је иницирани пројекат Ахмада Аваиса. То је Сет алата нулте конфигурације (# 0ЦЈС
) који ће вам омогућити да развијете Гутенберг блок са неким модерним стацковима, укључујући Реацт, Вебпацк, ЕСНект, Бабел, ЕСЛинт и Сасс. Пратите упутства да бисте започели са Цреате Гутен Блоцк.
Коришћење ЕС5 (ЕЦМАСцрипт 5)
Користећи све ове алате за креирање једноставног “Здраво Свете” блок може изгледати превише. Ако волите да држите своје гомиле на леђима, заправо можете да развијете Гутенберг блок користећи обичан добар ЕЦМАСцрипт 5 с којим сте можда већ упознати. Ако имате ВП-ЦЛИ 1.5.0 инсталиран на вашем рачунару, можете једноставно да покренете ...
вп сцаффолд блоцк[--титле = ] [--дасхицон = ] [--цатегори = ] [--тхеме] [--плугин = ] [--сила]
… до генеришете Гутенберг блок блока за ваш плугин или тему. Овај приступ је разумнији, посебно за постојеће додатке и теме које сте развили прије Гутенберг ере.
Уместо креирања новог додатка за смештај Гутенберг блокова, можда ћете желети да интегришете блокове у ваше додатке или теме. И како би овај водич био лак за свакога, користићемо ЕЦМАСцрипт 5 са ВП-ЦЛИ.
Регистровање новог блока
Гутенберг је тренутно развијен као додатак и биће спојен са ВордПресс 5.0 кад год тим буде мислио да је спреман. Дакле, за сада ћете морати да га инсталирате Страница додатака у вп-админ
. Када га инсталирате и активирате, покрените следећу команду у терминалу или командној линији ако сте на Виндовс машини.
вп сцаффолд блоцк сериес --титле = "ХТМЛ5 Сериес" - теми
Ова команда ће генерисати блок на тренутно активну тему. Наш блок ће се састојати од следећих датотека:
. А¢А ?? А ?? А¢А ?? А ?? А¢А ?? А ?? сериес А¢А ?? А'А'А А'А А¢А ?? А ?? А¢А ?? А ?? А¢А ?? А ?? блоцк.јс А¢А ?? А'А'А А'А А¢А ?? А ?? А¢А ?? А ?? А¢А ?? А ?? едитор.цсс А¢А ?? А'А'А А'А А¢А ?? А ?? А¢А ?? А ?? А¢А ?? А ?? стиле.цсс А¢А ?? А ?? А¢А ?? А ?? А¢А ?? А ?? сериес.пхп
Учитајмо главни фајл наших блокова у фунцтионс.пхп
наше теме:
иф (фунцтион_екистс ('регистер_блоцк_типе')) захтијевает гет_темплате_дирецтори (). '/блоцкс/сериес.пхп';
Обратите пажњу да смо учитали фајл са условним. То осигурава компатибилност са претходном верзијом ВордПресс-а да је наш блок учитан само када је Гутенберг присутан. Наш блок би сада требао бити доступан унутар Гутенберг интерфејса.
Овако изгледа када убацимо блок.
Гутенберг АПИ
Гутенберг уводи два сета АПИ-ја за регистрацију новог блока. Ако погледамо сериес.пхп
, наћи ћемо следећи код који региструје наш нови блок. Такође учитава стилове и ЈаваСцрипт на фронт-енд и едитор.
регистер_блоцк_типе ('твентисевентеен / сериес', арраи ('едитор_сцрипт' => 'сериес-блоцк-едитор', 'едитор_стиле' => 'сериес-блоцк-едитор', 'стиле' => 'сериес-блоцк',));
Као што можемо видети горе, наш блок је именован твентисевентеен / сериес
, Име блока мора бити јединствено и просторно да би се избегао судар са другим блоковима које доносе други додаци.
у наставку, Гутенберг обезбеђује скуп нових ЈаваСцрипт АПИ-ја за интеракцију са “Блокирати” интерфејс у едитору. Пошто је АПИ прилично обилан, фокусират ћемо се на неке специфичности за које мислим да бисте требали знати да бисте добили једноставан, али функционалан Гутенберг блок.
вп.блоцкс.регистерБлоцкТипе
Прво ћемо истражити вп.блоцкс.регистерБлоцкТипе
. Ова функција се користи региструјте ново “Блокирати” Гутенберговом уреднику. Потребна су два аргумента. Први аргумент је име блока које треба пратити име регистровано у регистер_блоцк_типе
функција у ПХП страни. Други аргумент је Објецт дефинира својства блока као што су наслов, категорија и неколико функција за приказивање Блоцк интерфејса.
вар регистерБлоцкТипе = вп.блоцкс.регистерБлоцкТипе; регистерБлоцкТипе ('твентисевентеен / сериес', титле: __ ('ХТМЛ5 Сериес'), категорија: 'видгетс', кеивордс: ['хтмл'], едит: фунцтион (пропс) , саве: фунцтион (пропс) );
вп.елемент.цреатеЕлемент
Ова функција вам омогућава да креирате елемент унутар “Блокирати” у уређивачу поста. Тхе вп.елемент.цреатеЕлемент
Функција је у суштини апстракција Реакције цреатеЕлемент ()
тако да прихвата исти скуп аргумената. Први аргумент узима тип елемента, на пример, пасус, а спан
, или а див
како је приказано испод:
вп.елемент.цреатеЕлемент ('див');
Ми Можемо алиас функцију у варијаблу тако да је краће писати. На пример:
вар ел = вп.елемент.цреатеЕлемент; ел ('див');
ако ти преферирају нову ЕС6 синтаксу, можете то урадити и на овај начин:
цонст цреатеЕлемент: ел = вп.елемент; ел ('див');
Можемо и ми додајте атрибуте елемената као што је класа
име или ид
на другом параметру као што следи:
вар ел = вп.елемент.цреатеЕлемент; ел ('див', 'цласс': 'сериес-хтмл5', 'ид': 'сериес-хтмл-пост-ид-001');
Тхе див
које смо створили не би имало смисла без садржаја. Ми Можемо додајте садржај на аргумент трећег параметра:
вар ел = вп.елемент.цреатеЕлемент; ел ('п', 'цласс': 'сериес-хтмл5', 'ид': 'сериес-хтмл-пост-ид-001', 'Овај чланак је део наше "ХТМЛ5 / ЦСС3 Туториалс серије" - посвећен да би вам помогао да будете бољи дизајнер и / или програмер. Кликните овде да бисте видели више чланака из исте серије ');
вп.цомпонентс
Тхе вп.цомпонентс
садржи збирку Гутенбергових компоненти, као што и само име имплицира. Те компоненте су технички Реацт прилагођене компоненте које укључују Буттон, Поповер, Спиннер, Тоолтип и гомилу других. Ми Можемо поново искористити ове компоненте у наш властити блок. У следећем примеру додајемо компоненту дугмета.
вар Буттон = вп.цомпонентс.Буттон; ел (Буттон, 'цласс': 'довнлоад-буттон',, 'Довнлоад');
Атрибути
Атрибути су начин за похрањивање података у наш Блок, ови подаци могу бити попут садржаја, боја, поравнања, УРЛ-а итд. Можемо добити атрибуте из Пропертиес прослијеђених на Уредити()
функција, као што следи:
едит: фунцтион (пропс) вар цонтент = пропс.аттрибутес.сериесЦонтент; ретурн ел ('див', 'цласс': 'сериес-хтмл5', 'ид': 'сериес-хтмл-пост-ид-001', садржај);
Да бисмо ажурирали атрибуте, користићемо сетАттрибутес ()
функције. Обично бисмо променили садржај на одређеној радњи, као што је када се кликне на дугме, унесе се попуњава, изабере опција, итд. У следећем примеру, користићемо га да додамо повући се садржај нашег блока у случају да се нешто неочекивано деси нашем сериесЦонтент
Атрибут.
едит: фунцтион (пропс) иф (типеоф пропс.аттрибутес.сериесЦонтент === 'ундефинед' ||! пропс.аттрибутес.сериесЦонтент) пропс.сетАттрибуте (сериесЦонтент: 'Хелло Ворлд! ) вар цонтент = пропс.аттрибутес.сериесЦонтент; повратак [ел ('див', 'цласс': 'сериес-хтмл5', 'ид': 'сериес-хтмл-пост-ид-001', садржај),];
Савинг тхе Блоцк
Тхе сачувати()
функција ради слично као Уредити()
, осим што дефинира садржај нашег блока за спремање у базу података поста. Чување садржаја блока је прилично једноставно, као што можемо видети испод:
саве: фунцтион (пропс) иф (! пропс ||! пропс.аттрибутес.сериесЦонтент) ретурн; вар цонтент = пропс.аттрибутес.сериесЦонтент; повратак [ел ('див', 'цласс': 'сериес-хтмл5', 'ид': 'сериес-хтмл-пост-ид-001', садржај),];
Шта је следеће?
Гутенберг ће променити ВордПресс екосистем на боље (или можда још горе). То омогућава програмерима да усвојити нови начин развоја ВордПресс додатака и тема. Гутенберг је само почетак. Ускоро “Блокирати” парадигма ће бити проширена на друге области ВордПресс-а, као што су АПИ-ји за подешавања и Видгети.
Научите ЈаваСцрипт дубоко; то је једини начин да уђете у Гутенберг и останете релевантни за будућност у ВордПресс индустрији. Ако сте већ упознати са основама ЈаваСцрипта, функцијама, алатима, робом и оштрицама, заиста сам сигуран да ћете успети са Гутенбергом.
Као што је поменуто, Гутенберг излаже обиље АПИ-ја, довољно да уради скоро све што је у вашем Блоку. Можете одабрати да ли желите кодирајте свој блок обичним старим ЈаваСцрипт-ом, ЈаваСцрипт-ом са ЕС6 синтаксом, Реацт-ом, или чак Вуе-ом.
Идеје и инспирације
Направио сам веома (веома) једноставан Гутенберг блок који можете пронаћи у спремишту нашег Гитхуб рачуна. Поред тога, саставио сам и неколико складишта одакле можете инспирисати изградњу сложенијег блока.
- Гутенблоцкс - Збирка блокова по Матхиеу Виет-у написана у ЈаваСцрипт-у са ЕС5 синтаксом
- Јетпацк Гутенблоцкс Пројецт - колекција блокова у Јетпацку
- Списак примера имплементације Гутенберга, укључујући и Вуе.јс
Аддитионал Референце
- Гутенберг Оффициал Репоситори
- Гутенберг Хандбоок