✅ WEB ja WordPressi uudised, teemad, pistikprogrammid. Siin jagame näpunäiteid ja parimaid veebisaidi lahendusi.

Registreerige WordPressi plokiredaktori jaoks plokimall (Gutenberg)

17

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:

See veebisait kasutab teie kasutuskogemuse parandamiseks küpsiseid. Eeldame, et olete sellega rahul, kuid saate soovi korral loobuda. Nõustu Loe rohkem