Đây là nơi sưu tầm các vấn đề liên quan đến gutenberg như: remove block, group block vào một category…
Gutenberg có nhiều block mà khách họ không xài, chưa kể các plugin khác nó cũng gắn block riêng của nó vào làm cho phần quản lý blocks quá nhiều blocks gây rối. Vì vậy chúng ta chỉ để lại những block mà khách cần mà thôi. Code bên dưới là chỉ cho phép các block mà mình muỗn. Anh chị copy về sửa lại theo nhu cầu nhé
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
add_filter( 'allowed_block_types', array($this,'allowed_block_types'),10, 2 ); function allowed_block_types( $allowed_blocks, $post ) { //var_dump($allowed_blocks); $allowed_blocks = array( 'core/paragraph', 'core/image', 'core/heading', //'core/subhead', //'core/gallery', //'core/list', //'core/quote', //'core/audio', 'core/cover', //'core/file', 'core/video', 'mailright/buttonshowpopup', 'core/embed', //'core/table', //'core/verse', //'core/code', //'core/freeform', //'core/html', //'core/preformatted', //'core/pullquote' 'ep/rating', 'ep/counter', 'ep/progress-bar', 'ep/toggles', 'ep/tabs', 'ep/icon', 'ep/countdown', 'ep/lottie' ); return $allowed_blocks; } |
Ví dụ chúng ta tạo một category rồi muốn các block core của wordpress nào đó vào category này thì làm sao. Code dưới là nhóm các block core như ‘core/paragraph’, ‘core/heading’… vào category có slug ‘fcwordpress-category’, nhớ đây là code js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
function changeCategoryForCoreBlocks( settings, name ) { if ( name !== 'core/image' && name !== 'core/cover' && name !== 'core/paragraph' && name !== 'core/heading' && name !== 'core/video' && name !== 'core-embed/youtube' && name !== 'core-embed/vimeo' && name !== 'core/embed' ) { return settings; } return lodash.assign( {}, settings, { category: "fcwordpress-category", } ); } wp.hooks.addFilter( 'blocks.registerBlockType', 'landing-page/change-category-core-block', changeCategoryForCoreBlocks ); |
Trong core/embed có nhiều block con phụ mà chúng ta không xài hết, ví dụ dưới đây là chỉ để lại phần block embed của youtube và vimeo
và cũng là code js
1 2 3 4 5 6 7 8 9 10 11 |
wp.domReady(function () { const allowedEmbedBlocks = [ 'vimeo', 'youtube', ]; wp.blocks.getBlockVariations('core/embed').forEach(function (blockVariation) { if (-1 === allowedEmbedBlocks.indexOf(blockVariation.name)) { wp.blocks.unregisterBlockVariation('core/embed', blockVariation.name); } }); }); |
Mọi sự sao chép xin ghi rõ nguồn là fcwordpress.net
Chuyên trang về wordpress: hướng dẫn thiết kế theme, plugin, thủ thuật wordpress