权限没有,则隐藏 function forum_list_access_filter($forumlist, $gid, $allow = 'allowread') { global $grouplist; if (empty($forumlist)) return array(); if (1 == $gid) return $forumlist; $forumlist_filter = $forumlist; $group = $grouplist[$gid]; foreach ($forumlist_filter as $fid => $forum) { if (empty($forum['accesson']) && empty($group[$allow]) || !empty($forum['accesson']) && empty($forum['accesslist'][$gid][$allow])) { unset($forumlist_filter[$fid]); } unset($forumlist_filter[$fid]['accesslist']); } return $forumlist_filter; } function forum_filter_moduid($moduids) { $moduids = trim($moduids); if (empty($moduids)) return ''; $arr = explode(',', $moduids); $r = array(); foreach ($arr as $_uid) { $_uid = intval($_uid); $_user = user_read($_uid); if (empty($_user)) continue; if ($_user['gid'] > 4) continue; $r[] = $_uid; } return implode(',', $r); } function forum_safe_info($forum) { //unset($forum['moduids']); return $forum; } function forum_filter($forumlist) { foreach ($forumlist as &$val) { unset($val['brief'], $val['announcement'], $val['seo_title'], $val['seo_keywords'], $val['create_date_fmt'], $val['icon_url'], $val['modlist']); } return $forumlist; } function forum_format_url($forum) { global $conf; if (0 == $forum['category']) { // 列表URL $url = url('list-' . $forum['fid'], '', FALSE); } elseif (1 == $forum['category']) { // 频道 $url = url('category-' . $forum['fid'], '', FALSE); } elseif (2 == $forum['category']) { // 单页 $url = url('read-' . trim($forum['brief']), '', FALSE); } if ($conf['url_rewrite_on'] > 1 && $forum['well_alias']) { if (0 == $forum['category'] || 1 == $forum['category']) { $url = url($forum['well_alias'], '', FALSE); } elseif (2 == $forum['category']) { // 单页 $url = ($forum['threads'] && $forum['brief']) ? url($forum['well_alias'] . '-' . trim($forum['brief']), '', FALSE) : url($forum['well_alias'], '', FALSE); } } return $url; } function well_forum_alias() { $forumlist = forum_list_cache(); if (empty($forumlist)) return ''; $key = 'forum-alias'; static $cache = array(); if (isset($cache[$key])) return $cache[$key]; $cache[$key] = array(); foreach ($forumlist as $val) { if ($val['well_alias']) $cache[$key][$val['fid']] = $val['well_alias']; } return array_flip($cache[$key]); } function well_forum_alias_cache() { global $conf; $key = 'forum-alias-cache'; static $cache = array(); // 用静态变量只能在当前 request 生命周期缓存,跨进程需要再加一层缓存:redis/memcached/xcache/apc if (isset($cache[$key])) return $cache[$key]; if ('mysql' == $conf['cache']['type']) { $arr = well_forum_alias(); } else { $arr = cache_get($key); if (NULL === $arr) { $arr = well_forum_alias(); !empty($arr) AND cache_set($key, $arr); } } $cache[$key] = empty($arr) ? '' : $arr; return $cache[$key]; } ?>plugin development - Creating a custom Gutenberg block with columns
最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

plugin development - Creating a custom Gutenberg block with columns

programmeradmin13浏览0评论

I would like to create a custom block that contains columns, and starts with various other blocks in each of the columns, however the code I have come up with so far will create a column block in the same way that adding a new column block from the standard block library does, i.e. asking which column variation, and even if I click skip it just gives me empty columns rather than my default content.

The code does the same thing even if I remove the innerBlocks property altogether, and renaming it to content does not help either. There are no console errors in the browser, or in the npm build process.

Adding content into the default columns the code gives me works, and I can save/reload/edit fine, just can't specify default content.

I am running the latest WordPress 5.5.

import {__} from '@wordpress/i18n';
import {registerBlockType} from '@wordpress/blocks';
import {InnerBlocks} from '@wordpress/block-editor';

const MY_TEMPLATE = [
    ['core/columns', {
        columns: 2,
        innerBlocks: [
            ['core/column', {
                width: 33.33, innerBlocks: [
                    ['core/paragraph', {
                        placeholder: 'LHS Column',
                        content: __(
                            'LHS Lorem ipsum.....'
                        )
                    }]
                ]
            }],
            ['core/column', {
                width: 66.66, innerBlocks: [
                    ['core/paragraph', {
                        placeholder: 'RHS Column',
                        content: __(
                            'RHS Lorem ipsum.....'
                        )
                    }]
                ]
            }]
        ]
    }]
]

registerBlockType('my/block', {
    title: __('my block', 'my-block'),
    icon: 'feedback',
    category: 'layout',
    edit: (props) => {
        return (
            <div>
                <InnerBlocks
                    template={MY_TEMPLATE}
                    templateLock="all"
                    orientation="horizontal"
                />
            </div>
        );
    },
    save: ({attributes}) => {
        return (
            <div>
                <InnerBlocks.Content/>
            </div>
        );
    }

});

发布评论

评论列表(0)

  1. 暂无评论