Nueva API de registro de plantillas de plugin en WordPress 6.7

自从引入块主题以来,主题开发者就能够创建自定义块模板。但是,这种可能性仅限于主题,插件无法直接注册自己的模板。为了实现类似的功能,插件必须采用复杂的方法,包括挂接多个PHP过滤器、手动创建WP_Block_Template对象以及复制内部 WordPress 逻辑。

Nueva API de registro de plantillas de plugin en WordPress 6.7

WordPress 6.7 引入了一个新的API,它将大大简化插件注册自己的块模板的过程。为了实现这一点,引入了两个新功能:register_block_template()用于注册块模板和unregister_block_template()用于取消注册块模板。

register_block_template( string $template_name, $args = array() )接受两个参数,定义模板如何注册:

  • $template_name:模板名称,形式为plugin_uri//template_name(请注意,这需要双//)。
  • $args:用于定义模板的参数数组:
    • título:模板的国际化标题。
    • descripción:模板的国际化描述。
    • contenido:模板在编辑器或前端呈现时的默认内容(块标记)。
    • post_types:一系列帖子类型 slug,可作为每个帖子的自定义模板提供给用户。
Nueva API de registro de plantillas de plugin en WordPress 6.7

例如,插件可以使用以下代码片段注册模板:

register_block_template( 'devblog-plugin-templates//my-template', [
    'title'     => __( 'Example', 'devblog-plugin-templates' ),
    'description' => __( 'An example block template from a plugin.', 'devblog-plugin-templates' ),
    'content'   => '
        <!-- wp:template-part {"slug":"header","area":"header","tagName":"header"} /-->
        <!-- wp:group {"tagName":"main"} -->
        <main class="wp-block-group">
            <!-- wp:group {"layout":{"type":"constrained"}} -->
            <div class="wp-block-group">
                <!-- wp:paragraph -->
                <p>This is a plugin-registered template.</p>
                <!-- /wp:paragraph -->
            </div>
            <!-- /wp:group -->
        </main>
        <!-- /wp:group -->
        <!-- wp:template-part {"slug":"footer","area":"footer","tagName":"footer"} /-->'

一旦注册,该模板将与站点编辑器中的所有其他模板一起出现:

Nueva API de registro de plantillas de plugin en WordPress 6.7

并且,如果需要,可以稍后使用以下命令取消注册:

	unregister_block_template( 'devblog-plugin-templates//my-template' )

插件还可以覆盖 WordPress 模板层次结构中的模板,例如自定义帖子类型的存档页面或特定作者页面。

主题模板优先于插件注册的模板,允许主题覆盖特定的插件模板,就像使用 WordPress 模板一样。

目前该API仅限于块模板,不允许注册块模板部分。

Nueva API de registro de plantillas de plugin en WordPress 6.7

Póngase en contacto con nosotros
¿No puede leer el artículo? Póngase en contacto con nosotros para obtener una respuesta gratuita. Ayuda gratuita para sitios personales y de pequeñas empresas
Teléfono: 020-2206-9892
QQ咨询:1025174874
(iii) Correo electrónico: info@361sale.com
Horario de trabajo: de lunes a viernes, de 9:30 a 18:30, días festivos libres
Publicado por photon fluctuations, retweeted with attribution:https://www.361sale.com/es/21929/

Como (1)
Anterior hace 2 días
Siguiente hace 1 días

Recomendado

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Póngase en contacto con nosotros

020-2206-9892

QQ咨询:1025174874

Correo electrónico: info@361sale.com

Horario de trabajo: de lunes a viernes, de 9:30 a 18:30, días festivos libres

Servicio de atención al cliente WeChat