gebruederheitz/wp-block-video-overlay

视频叠加块的後端辅助工具。

v4.0.0 2024-03-06 16:11 UTC

README

查看 @gebruederheitz/wp-block-video-overlay

使用方法

注册块

假设您已经在某处初始化了 gebruederheitz/wp-gutenberg-blocks 块注册器

\Gebruederheitz\GutenbergBlocks\BlockRegistrar::getInstance();

然后您只需实例化一个 VideoOverlayBlock

new \Gebruederheitz\GutenbergBlocks\VideoOverlay\VideoOverlayBlock();

使用同意管理功能

使用此块和 @gebruederheitz/consent-tools,管理第三方平台的用户同意非常简单。要为 @gebruderheitz/wp-block-video-overlay 中的编辑器脚本提供一个可能的嵌入类型列表,请使用过滤器钩子

use Gebruederheitz\GutenbergBlocks\VideoOverlay\VideoOverlayBlock;

add_filter(VideoOverlayBlock::HOOK_EMBED_TYPES, function ($embedTypes) use $services {
    $embedTypes[''] = ['displayName' => 'internal'];

        foreach ($services as $serviceId => $service) {
            $embedTypes[$serviceId] = [
                'displayName' => $service['prettyName'] ?? $serviceId,
            ];
        }

        return $embedTypes;
});

更改默认嵌入提供者

您可以直接将默认服务的标识符传递给构造函数

use Gebruederheitz\GutenbergBlocks\VideoOverlay\VideoOverlayBlock;

new VideoOverlayBlock();   // Default: 'youtube' service (data-ghct-src and data-ghct-type="youtube")
new VideoOverlayBlock(''); // Default: no consent management (src and no data-ghct-src)
new VideoOverlayBlock('vimeo') // Default: 'vimeo' service (data-ghct-src and data-ghct-type="vimeo")

启用视频字幕

使用过滤器钩子 HOOK_CC_LANG_PREFS 提供您网站上可用的语言数组,以允许编辑器为 YouTube 字幕输入语言预设

add_filter(VideoOverlayBlock::HOOK_CC_LANG_PREFS, function ($enabled) {
    /* ... */
    return true;
});

编辑器可以在块编辑器中输入字符串,代表语言或区域代码(如 "en"、"en-GB"、"en-US"、"fr"、"de-DE" 等)。输入会被清理,只允许字母数字字符、破折号和下划线。

定义附加属性

是的,有过滤器钩子可以做到这一点

use Gebruederheitz\GutenbergBlocks\VideoOverlay\VideoOverlayBlock;

add_filter(VideoOverlayBlock::HOOK_ATTRIBUTES, function ($attributes) {
    $attributes['myCustomAttribute'] = [
        'type' => 'string',
        'default' => 'attribute default value',
    ];
    
    return $attributes;
})

更改块标记

您可以通过将文件放入 wp-content/themes/{your-theme}/template-parts/blocks/video-overlay.php 来覆盖块使用的模板。可以使用 get_query_var('attributeName') 访问块的属性。例如,查看 默认模板

或者,您还可以过滤并覆盖模板部分路径,以获得更多的控制

add_filter(VideoOverlayBlock::HOOK_TEMPLATE_PARTIAL, function (string $partial, string $type, array $attributes) {
    if ($type === 'overlay') {
        return get_theme_file_path('templates/block/video/video-type-overlay.php');
    }
    
    return $partial;
}, 3);