Sukurta turinio redaktoriams
Platesnis laukų skydelis, įrankių juostos valdikliai, redaktoriaus taisyklės ir administravimo srities sąrašas, nustatomi block.json ir blockstudio.json.
Vietos kiekvienam laukui
Pasikartojantys laukai, kodo laukai ir įdėtinės grupės šoninėje juostoje susispaudžia. Bloko antraštėje yra Open Expanded Editor mygtukas, atveriantis tuos pačius laukus platesniame skydelyje dešinėje. Paspaudus Done, foną arba Esc skydelis uždaromas, o blokas lieka pasirinktas.
Tai tas pats laukų atvaizduoklis, įrašantis tuos pačius atributus, todėl peržiūra atnaujinama jums rašant ir nereikia jokio block.json nustatymo. Laukus, kurie turėtų būti šalia turinio, galima perkelti į bloko įrankių juostą naudojant "position": "toolbar".
{
"name": "my-theme/hero",
"title": "Hero",
"blockstudio": {
"attributes": [
{
"id": "alignment",
"type": "select",
"label": "Alignment",
"position": "toolbar",
"options": [
{ "value": "left", "label": "Left" },
{ "value": "center", "label": "Center" },
{ "value": "right", "label": "Right" }
]
},
{
"id": "title",
"type": "text",
"label": "Title"
}
]
}
}Automatinis užbaigimas iš jūsų CSS
Išvardykite stilių lentelių URL lauke blockEditor.cssClasses ir cssVariables; klasių bei kodo laukai leidžia suprasti, ką šie failai apibrėžia.
Užvedimo ir pasirinkimo žymos
Nustatykite blockEditor.enhance, kad redaktoriuje būtų rodomi Blockstudio užvedimo ir pasirinkimo indikatoriai.
Kas gali pasiekti redaktorių
users.ids ir users.roles lauke blockstudio.json nurodo naudotojų ID ir vaidmenis, turinčius redaktoriaus prieigą per Blockstudio.
Jūsų kliento kalba
Laukų valdikliai, administravimo ekranas ir drobė naudoja svetainės arba kiekvieno naudotojo profilio kalbą, pasirinkdami iš įtrauktų vertimų.
Tik redaktoriui skirti ištekliai
editor.assets faile blockstudio.json išvardija papildomus išteklius, kuriuos reikia įkelti redaktoriuje.
Medija pradiniame duomenų rinkinyje
Failų laukai nuskaito priedo duomenis iš pradinio redaktoriaus duomenų rinkinio, taip pat įdėtose grupėse, kortelėse ir pasikartojančiuose laukuose, prieš kreipdamiesi į medijos galinį tašką.
Vienu metu – tik viena peržiūros užklausa
Naujesnė bloko peržiūros užklausa naršyklėje atšaukia ankstesnę, o dabartinė peržiūra tuo metu lieka ekrane.
Kiekvienas blokas išsaugo savo reikšmes
Kelių pasirinkimų blokuose išsaugomos jų atskiros reikšmės, o anuliavimo ir grąžinimo veiksmai apima RichText bei šoninės juostos laukus.
Išjunkite lauką, išsaugokite jo reikšmę
Redaktorius gali išjungti lauką inspektoriuje: užveskite pelės žymeklį ties jo kairiuoju kraštu, kol pasirodys mėlynas rėmelis, tada spustelėkite. Laukas tampa permatomas, jo reikšmė lieka išsaugota, o blokas nustoja jį atvaizduoti, kol kas nors vėl jį įjungs.
Tas pats veikia ir su atskirais failų lauko elementais, todėl vienas vaizdas gali būti paslėptas, o kiti rodomi. Nustatykite "switch": true, kad laukui būtų rodomas perjungiklis, o šablone patikrinkite $a['_disabled'].
{
"name": "acme/card",
"title": "Card",
"blockstudio": {
"attributes": [
{
"id": "title",
"type": "text",
"label": "Title",
"switch": true
}
]
}
}<?php if (!empty($a['_disabled']) && in_array('title', $a['_disabled'])) : ?>
<p>No title on this one.</p>
<?php else : ?>
<h1><?php echo esc_html($a['title']); ?></h1>
<?php endif; ?>Peržiūra įterpimo lange
Pridėkite raktą example prie block.json, ir blokas bus peržiūrimas, kai redaktorius užves ant jo pelės žymeklį blokų įterpimo lange. Blokui, kuris gerai atrodo su numatytaisiais nustatymais, pakanka tuščio objekto.
Nurodykite example.attributes savo laukų pavyzdines reikšmes arba example.innerBlocks pradinį medį blokui, kuris apgaubia kitus blokus.
{
"name": "my-theme/hero",
"title": "Hero",
"category": "text",
"example": {
"attributes": {
"title": "This title will be shown in the preview"
}
},
"blockstudio": true
}<h1><?php echo esc_html($a['title']); ?></h1>Redaktoriaus taisyklės viename faile
Nustatykite, ką siūlo įterpimo langas, nepridėdami temos jungiamojo kodo. blockEditor.blocks priima leidžiamų ir draudžiamų elementų sąrašus su pakaitos simboliais, pavyzdžiui, core/*, pervadina ir rikiuoja kategorijas, pašalina PHP užregistruotus blokų stilius, paslepia senus valdiklius ir gali išjungti blokų katalogą.
blockEditor.patterns įjungia arba išjungia pagrindinius, nuotolinius, temos ir Blockstudio šablonų šaltinius bei filtruoja jų kategorijas. blockEditor.media išjungia Openverse ir apriboja vaizdų dydžius, kuriuos gali pasirinkti redaktoriai.
{
"blockEditor": {
"blocks": {
"allow": ["core/*", "my-theme/*"],
"deny": ["core/embed", "core/freeform"],
"directory": false,
"categories": {
"rename": { "text": "Writing" },
"order": ["my-theme", "text", "media"]
},
"styles": {
"deny": { "my-theme/card": ["outline"] }
},
"legacyWidgets": { "hide": ["archives", "calendar"] }
},
"patterns": {
"core": false,
"remote": false,
"categories": { "deny": ["gallery"] }
},
"media": {
"openverse": false,
"imageSizes": { "allow": ["thumbnail", "large"] }
}
}
}Greitas pradinis atvaizdavimas
Blockstudio blokai atvaizduojami serveryje. Redaktorius iš anksto įkelia įraše jau esančių blokų, įskaitant įdėtinius sinchronizuotų šablonų blokus, sugeneruotą išvestį ir panaudoja ją pirmajam atvaizdavimui, užuot siuntęs atvaizdavimo užklausą kiekvienam išsaugotam blokui.
Kodas, klasės, atributai ir WYSIWYG valdikliai atsisiunčiami pirmą kartą jiems pasirodžius, todėl nepasirinkti blokai jų neįkelia. Blokas, kuriam nereikia tiesioginės peržiūros, gali nustatyti disableLoading ir rodyti vietaženklį, o visus laukus bus galima redaguoti.
{
"name": "my-theme/map",
"title": "Map",
"blockstudio": {
"blockEditor": {
"disableLoading": true
}
}
}{
"blockEditor": {
"disableLoading": true
}
}Peržiūros veikia kaip puslapis
Interactivity API įkeliamas redaktoriaus iframe, todėl data-wp-context, susiejimai, įvykių apdorojimo funkcijos ir jūsų saugyklos veiksmai veikia drobėje. Jame veikia ir įtraukti bsui/* komponentai, todėl redaguojant atsidaro dialogo langas, o išskleidžiamasis sąrašas išsiskleidžia.
Peržiūroje esančios nuorodos niekada neatidaro kito puslapio – nesvarbu, ar jas spustelėsite, atidarysite modifikavimo klavišu, ar aktyvinsite klaviatūra, o spustelėjus vis tiek pažymimas blokas. Naudojant assets.reset.enabled, temos body klasės kopijuojamos į drobę, todėl joje taip pat veikia tokie selektoriai kaip .brand-a .site-card.
{
"name": "my-theme/disclosure",
"title": "Disclosure",
"blockstudio": {
"interactivity": true
}
}<?php
add_filter('blockstudio/editor/canvas/body_class', function (array $classes) {
return array_values(array_diff($classes, ['logged-in']));
});Inventorius skiltyje Tools > Blockstudio
Administravimo ekrane pateikiama, ką Blockstudio užregistravo iš failų sistemos: blokus, plėtinius, laukus, puslapius su jų sinchronizavimo būsena ir db.php schemas – savosiose WordPress DataViews lentelėse. Duomenų bazių rodinyje galima naršyti kiekvienos schemos įrašus, gaunamus ir puslapius suskaidytus per REST API.
Kai temos blocks.json įvardija registrus, registro rodinyje pateikiami jų blokai ir jie importuojami į jūsų blokų katalogą iš wp-admin. Ekraną gali atverti naudotojai, turintys manage_options, o filtras blockstudio/admin/enabled jį išjungia.
{
"$schema": "https://blockstudio.dev/schema/blocks.json",
"directory": "blockstudio",
"registries": {
"ui": "https://blocks.example.com/registry.json"
}
}<?php
add_filter('blockstudio/admin/enabled', '__return_false');Oficialus plėtinių rinkinys
Aukščiausios klasės svetainių šablonai, DI sistemos instrukcijos ir privati Discord bendruomenė. Vienkartinis pirkimas, atnaujinimai visam laikui.
- 500+ svetainių šablonų
- AI sistemos instrukcijos
- Naujiniai visam laikui
- Privati Discord bendruomenė