Edellisessä oppaassani tutkin lohkokuvioiden voimaa. Lohkomallit ovat samanlaisia, mutta sen sijaan, että luottaisit siihen, että asiakkaasi lisää lohkokuvioita editoriin, se antaa heille täydellisen asettelun heti, kun ne lisäävät uuden viestin.
Edellytykset
- WordPressin asennus
- Koodieditori
Luo estomalli
Tässä esimerkissä aion lisätä saman lohkokuvion, jonka loin edellisessä oppaassani, mutta lohkomalliksi.
Tässä oppaassa kopioimme editorin tulosteen HTML-koodin. Tässä oppaassa aiomme tehdä jotain hieman erilaista ja rakentaa joukon lohkon nimiavaruuksia, ominaisuuksia ja sisältöä.
Yksinkertaisimmassa muodossaan lohkomalli näyttää vähän tältä:
$block_template = [
[ 'core/heading', [ 'level' => 2, 'content' => 'Example Block Template' ] ],
[ 'core/paragraph', [ 'content' => 'Lorem ipsum dolor sit amet labore cras venenatis.' ] ],
];
Kuten näet, se on taulukko, joka sisältää seuraavan kaavan mukaisia lohkoja:
- Estä nimiavaruus
- Estä attribuutit
Haluamme kuitenkin käyttää sisäkkäisiä lohkoja, joten välitämme tähän lohkotaulukkoon kolmannen parametrin, joka on innerBlocks.
Haluatko vain lohkon sijoituksen?
Huomaa, että voit jättää attribuutit tyhjiksi, jos haluat antaa lohkoille ilman asetettua sisältöä.
Matriisi, jolla luodaan sama lohko, jonka loimme lohkokuviooppaassa, tarvitsemme monimutkaisemman taulukon, kuten:
$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.',
]
],
]
],
],
],
]
]
];
Rekisteröi estomalli
Lohkomallin rekisteröiminen olemassa olevalle viestityypille
Voit rekisteröidä lohkomallin olemassa olevalle viestityypille (kuten postviestityypille) käyttämällä alla olevaa koodia ohittamaan viestityyppiobjektin.
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' );
Tämä koodi yksinkertaisesti asettaa mallin ja (valinnaisesti) [template_lock](https://wholesomecode.ltd/#template-lock)tyypin.
Koko koodi näyttäisi tältä:
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' );
Lohkomallin rekisteröiminen uudelle viestityypille
Jos olet rekisteröimässä viestityyppiä, voit siirtää mallin templateargumenttiin register_post_type.
Voit myös siirtää [template_lock](https://wholesomecode.ltd/#template-lock)argumentin kohtaan register_post_type.
Mallin lukitus
Argumentti template_lockvoi tehdä useita asioita riippuen argumentista, joka sille välitetään. Nämä on lueteltu Gutenbergin kehitysoppaassa seuraavasti:
all— estää kaikki toiminnot. Ei ole mahdollista lisätä uusia lohkoja, siirtää olemassa olevia lohkoja tai poistaa lohkoja.insert— estää lohkojen lisäämisen tai poistamisen, mutta sallii olemassa olevien lohkojen siirtämisen.
Mallin lukitus ei toimi sisäkkäisissä lohkoissa
Mallilukko toimii vain ylimmän tason lohkoissa. Käytä tätä hyödyksesi luomalla asettelun, jossa on kiinteät otsikot, kuvat, kappaleet ja ryhmäalue, johon asiakkaasi voivat lisätä haluamaansa sisältöä.
Voit myös luoda mukautetun sisäkkäisen lohkomallin InnerBlocksilla.
Voit myös rajoittaa lohkoja, jotka voit lisätä tiettyihin viestityyppeihin.
Käytä Estä-mallia
Jos haluat käyttää lohkomallia, luo vain uusi viesti (tai mukautettu viestityyppi riippuen siitä, miten määritit asiat). Malli lisätään, ja sivullasi on nyt kiinteät sisältöalueet.
Viestin lisääminen näyttää lohkomallin
Voit rajoittaa eri viestityypeille saatavilla olevia lohkoja käyttämällä seuraavaa koodia.
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 );
Yllä oleva koodi rajoittaa viestityypin sallitut lohkot postseuraaviin:
-
Sarake (
core/column) -
Sarakkeet (sarakkeet
core/column) -
Ryhmä (
core/group) -
Otsikko (
core/heading) -
Kappale (
core/paragraph) -
Tarvitsetko jotain joustavampaa? Yritä sen sijaan rekisteröidä lohkokuvio
-
Tarvitsetko jotain, joka koskee lapsilohkoja? Yritä rekisteröidä InnerBlocks-malli