使WordPress成为核心

变更集57826


忽略:
时间戳:
2024年3月13日上午10:46:53(2个月(之前)
作者:
瑞士风格
消息:

交互API:增加处理指令的挂钩优先级。

使用优先级100确保其他筛选器可以在处理开始之前添加其他指令。
这样,即使$解析块变量由过滤器编辑。

道具cbravobernal、瑞士斯皮迪、flixos90、乔麦吉尔、gziolo。
修复#60743.

位置:
大旅行箱
文件夹:
2已编辑

图例:

未修改
补充
已删除
  • trunk/src/wp-includes/interactivity-api/interactiony-api.php

    57774兰特 57826兰特  
    5858
    5959            /*
    60 *使用优先级20以确保其他筛选器可以添加其他
     60*使用优先级100以确保其他筛选器可以添加其他筛选器
    6161*指令。
    6262             */
    63 add_filter('render_block_'。$block_name,$process_interactive_blocks,20, 2 );
     63add_filter('render_block_'。$block_name,$process_interactive_blocks,100, 2 );
    6464        }
    6565    }
     
    6767返回$parsed_block;
    6868}
    69 add_filter(“render_block_data”,“wp_interactivity_process_directives_of_interactive_blocks”);
     69/*
     70*使用优先级100来确保其他筛选器可以向
     71*在处理开始之前$parsed_block。
     72 */
     73添加过滤器('render_block_data','wp_interactivity_process_directives_of_interactive_blocks',100,1);
    7074
    7175/**
  • trunk/tests/phpunit/tests/interactivity-api/wpInteractivityAPIFunctions.php

    57822兰特 57826兰特  
    309309$this->data_wp_test_processor_count=0;
    310310do_block($post_content);
     311unregister_block_type('test/custom-directive-block');
    311312$this->assertEquals(2,$this->data_wp_test_processor_count);
     313$directive_processors->setValue(空,$old_directive_processiors);
     314    }
     315
     316    /**
     317*测试指令是服务器端处理的,即使$parsed_block变量是由过滤器编辑的。
     318     *
     319*@票60743
     320     *
     321*@covers::wp_interactivity_process_directives_of_interactive_blocks
     322     */
     323公共函数test_process_directives_when_block_is_filtered(){
     324寄存器块类型(
     325'测试/自定义指令块',
     326阵列(
     327“render_callback”=>函数(){
     328return'<input data-wp-interactive=“nameSpace”'。wp_interactivity_data_wp_context(数组('text'=>'test'))。'data-wp-bind--value=“context.text”/>';
     329                },
     330“supports”=>数组(
     331“交互性”=>true,
     332                ),
     333            )
     334        );
     335函数test_render_block_data($parsed_block){
     336$parsed_block['testKey']=true;
     337返回$parsed_block;
     338        }
     339add_filter('渲染块数据','测试渲染块数据]);
     340$post_content='<!--wp:test/custom-directive-block/-->';
     341$processed_content=do_blocks($post_content);
     342$processor=新的WP_HTML_Tag_processor($processed_content);
     343$processor->next_tag(数组(“data-wp-interactive”=>“nameSpace”));
     344删除过滤器('渲染块数据','测试渲染块数据]);
    312345unregister_block_type('test/custom-directive-block');
    313         $directive_processors->setValue(空,$old_directive_processcors);
     346        $this->assertEquals(“测试”,$processor->get_attribute(“值”));
    314347    }
    315348
注:请参见TracChangeset(跟踪变更集)获取有关使用变更集查看器的帮助。