Oma eelmises juhendis uurisin plokkide mustrite jõudu. Plokimallid on sarnased, kuid selle asemel, et loota oma kliendile plokimustrite sisestamisel redaktorisse, annab see neile täieliku paigutuse kohe, kui nad uue postituse lisavad.
Eeldused
- WordPressi installimine
- Koodiredaktor
Looge oma blokeerimismall
Selles näites lisan sama plokimustri, mille lõin eelmises juhendis, kuid plokimallina.
Selles juhendis kopeerisime redaktori väljundi HTML-i. Selles juhendis teeme midagi veidi erinevat ja loome ploki nimeruumide, atribuutide ja sisu massiivi.
Kõige lihtsamal kujul näeb plokimall välja umbes selline:
$block_template = [
[ 'core/heading', [ 'level' => 2, 'content' => 'Example Block Template' ] ],
[ 'core/paragraph', [ 'content' => 'Lorem ipsum dolor sit amet labore cras venenatis.' ] ],
];
Nagu näete, on see massiiv, mis sisaldab järgmise mustriga plokke:
- Blokeeri nimeruum
- Blokeeri atribuudid
Tahame siiski kasutada pesastatud plokke, seega edastame sellele ploki massiivile kolmanda parameetri, milleks on innerBlocks.
Kas soovite lihtsalt ploki paigutust?
Pange tähele, et võite jätta atribuudid tühjaks, et anda plokkidele seadistatud sisu.
Massiivi loomiseks sama ploki loomiseks, mille lõime plokimustri juhendis, vajame keerukamat massiivi, näiteks:
$block_template = [
[
'core/group',
[],
[
[
'core/heading',
[
'level' => 2,
'content' => 'Example Block Template',
]
],
[
'core/paragraph',
[
'content' => 'Lorem ipsum dolor sit amet labore cras venenatis.',
]
],
[
'core/columns',
[],
[
[
'core/column',
[],
[
[
'core/heading',
[
'level' => 3,
'content' => 'Sub Heading 1',
]
],
[
'core/paragraph',
[
'content' => 'Lorem ipsum dolor sit amet id erat aliquet diam ullamcorper tempus massa eleifend vivamus.',
]
],
]
],
[
'core/column',
[],
[
[
'core/heading',
[
'level' => 3,
'content' => 'Sub Heading 2',
]
],
[
'core/paragraph',
[
'content' => 'Morbi augue cursus quam pulvinar eget volutpat suspendisse dictumst mattis id.',
]
],
]
],
],
],
]
]
];
Registreerige blokeerimismall
Plokimalli registreerimine olemasoleva postituse tüübi jaoks
Olemasoleva postituse tüübi (nt postituse tüübi) jaoks plokimalli registreerimiseks postsaate postituse tüübi objekti alistamiseks kasutada allolevat koodi.
function register_block_template() {
$post_type_object = get_post_type_object( 'post' );
$post_type_object->template = $block_template;
$post_type_object->template_lock = 'all';
}
add_action( 'init', 'register_block_template' );
See kood määrab lihtsalt malli ja (valikuliselt) [template_lock](https://wholesomecode.ltd/#template-lock)tüübi.
Täielik kood näeks välja selline:
function register_block_template() {
$block_template = [
[
'core/group',
[],
[
[
'core/heading',
[
'level' => 2,
'content' => 'Example Block Template',
]
],
[
'core/paragraph',
[
'content' => 'Lorem ipsum dolor sit amet labore cras venenatis.',
]
],
[
'core/columns',
[],
[
[
'core/column',
[],
[
[
'core/heading',
[
'level' => 3,
'content' => 'Sub Heading 1',
]
],
[
'core/paragraph',
[
'content' => 'Lorem ipsum dolor sit amet id erat aliquet diam ullamcorper tempus massa eleifend vivamus.',
]
],
]
],
[
'core/column',
[],
[
[
'core/heading',
[
'level' => 3,
'content' => 'Sub Heading 2',
]
],
[
'core/paragraph',
[
'content' => 'Morbi augue cursus quam pulvinar eget volutpat suspendisse dictumst mattis id.',
]
],
]
],
],
],
]
]
];
$post_type_object = get_post_type_object( 'post' );
$post_type_object->template = $block_template;
$post_type_object->template_lock = 'all';
}
add_action( 'init', 'register_block_template' );
Blokeerimismalli registreerimine uue postituse tüübi jaoks
Kui registreerite postituse tüübi, saate malli edastada templateargumendile register_post_type.
Võite [template_lock](https://wholesomecode.ltd/#template-lock)argumendi sisestada ka register_post_type.
Malli lukk
Argument template_lockvõib teha mitut asja olenevalt argumendist, mis sellele edastatakse. Need on Gutenbergi arendusjuhendis loetletud järgmiselt:
all— takistab kõiki toiminguid. Uusi plokke pole võimalik sisestada, olemasolevaid plokke teisaldada ega plokke kustutada.insert— takistab plokkide sisestamist või eemaldamist, kuid võimaldab olemasolevaid plokke liigutada.
Malli lukk ei tööta pesastatud plokkidel
Malli lukk töötab ainult tipptaseme plokkidel. Kasutage seda oma eeliseks, luues paigutuse, millel on fikseeritud pealkirjad, pildid, lõigud ja rühmaala, et teie klient saaks sisestada mis tahes sisu, mis talle meeldib.
InnerBlocksi abil saate luua ka kohandatud pesastatud ploki malli.
Samuti saate piirata plokke, mida teil on lubatud teatud tüüpi postitustesse sisestada.
Kasutage blokeerimismalli
Plokimalli kasutamiseks looge lihtsalt uus postitus (või kohandatud postituse tüüp, olenevalt asjade konfigureerimisest). Mall lisatakse ja teie lehel on nüüd fikseeritud sisupiirkonnad.
Postituse lisamisel kuvatakse ploki malli
Saate piirata erinevat tüüpi postituste jaoks saadaolevaid plokke, kasutades järgmist koodi.
function filter_allowed_block_types( $allowed_block_types, $post) {
if ($post->post_type !== 'post') {
return $allowed_block_types;
}
$allowed_block_types = [
'core/column',
'core/columns',
'core/group',
'core/heading',
'core/paragraph',
];
return $allowed_block_types;
}
add_filter( 'allowed_block_types', 'filter_allowed_block_types', 10, 2 );
Ülaltoodud kood piirab postpostituse tüübis lubatud plokid järgmisega:
-
Veerg (
core/column) -
Veerud (veerud
core/column) -
Rühm (
core/group) -
Pealkiri (
core/heading) -
Lõige (
core/paragraph) -
Kas vajate midagi paindlikumat? Proovige selle asemel registreerida blokeerimismuster
-
Kas vajate midagi, mis kehtiks lapseplokkide kohta? Proovige registreerida InnerBlocksi mall