当前函数保存最后一段post。如何强制函数保存第一个段落块?

Current function saves the last paragraph of a post. How to force a function to save the first paragrapgh block?

我有一个函数,假设采用 post 的第一段块并将其保存到自定义字段。但是,我遇到的问题是它保存了 post.

的最后一段

因此,如果我有一个包含三个段落块的 post:

paragraph 1
paragraph 2
paragraph 3

它会将最后一段保存到一个字段中。

这是我使用的函数:

function post_extra_save( $post_id, $post){
    if ( has_blocks( $post->post_content ) ) {
        $blocks =    parse_blocks( $post->post_content );
        foreach ( $blocks as $block ) {
            if ( $block['blockName'] === 'core/paragraph' ) { // name of block
                $media_video_url = strip_tags($block['innerHTML']);
                update_field('field_6074e55c6618f', $media_video_url, $post_id);
            };
    }
};
add_action( 'save_post', 'post_extra_save', 10, 2 );

如何修复它以保存第一个段落块而不是最后一个?

update_field之后添加break语句。检查下面的代码。

function post_extra_save( $post_id, $post){
    if ( has_blocks( $post->post_content ) ) {
        $blocks =    parse_blocks( $post->post_content );
        foreach ( $blocks as $block ) {
            if ( $block['blockName'] === 'core/paragraph' ) { // name of block
                $media_video_url = strip_tags($block['innerHTML']);
                update_field('field_6074e55c6618f', $media_video_url, $post_id);
                break;
            }
        }
    }
}
add_action( 'save_post', 'post_extra_save', 10, 2 );