You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何以编程方式输出Gutenberg区块?是否存在类似do_shortcode的对应函数?

程序化输出Gutenberg区块的方法

好问题!你猜的没错,WordPress确实提供了和do_shortcode()对应的函数来实现Gutenberg区块的程序化输出——正是你提到的do_block(),它的用法完全符合你的预期!

基础用法

如果你只需要输出默认配置的区块,直接传入区块的注册名称即可,比如你说的WooCommerce畅销产品区块:

echo do_block('woocommerce/product-best-sellers');

带自定义属性的输出

如果需要给区块设置自定义参数(比如调整显示的列数、行数),可以传入完整的区块HTML注释格式字符串,就像Gutenberg编辑器后台生成的那样:

echo do_block( '<!-- wp:woocommerce/product-best-sellers {"columns":3,"rows":2,"orderby":"date"} /-->' );

更灵活的替代方案:render_block()

如果你需要动态构建区块属性(比如从数据库或用户输入获取参数),render_block()会更适合。它接受一个包含区块名称和属性的数组:

$block_attributes = array(
    'blockName' => 'woocommerce/product-best-sellers',
    'attrs' => array(
        'columns' => get_option('wc_best_sellers_columns'), // 动态获取配置
        'rows' => 2,
    ),
);

echo render_block($block_attributes);

注意事项

  • do_block()是WordPress 5.5版本才引入的,如果你需要兼容更早的WP版本,建议使用render_block()(它从5.0就存在了)。
  • 确保你要输出的区块已经被正确注册——比如WooCommerce的区块需要激活WooCommerce插件,否则函数会返回空内容。
  • 部分区块可能依赖前端脚本或样式,输出后记得确保对应的资源已加载(大部分核心和常用插件区块会自动处理,但自定义区块可能需要手动注册资源)。

内容的提问来源于stack exchange,提问作者gidiwe2427

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 21:27:38