Lỗi không Update Meta_Value Khi thay thế hình ảnh cũ bằng hình ảnh mới trong WordPress

Mã dưới đây hoạt động tốt có 1 lỗi không update được postmeta ” meta_key=_thumbnail_id và meta_value=id tại sao ?

2 dòng dưới không thấy update

//UPDATE meta_value

// Finally! set our post thumbnail

<?php

class Auto_Save_Images_local {
    function __construct()
    {
        add_filter( 'content_save_pre', array( $this, 'post_save_images' ) );
    }
    function post_save_images( $content )
    {
        if ( ( isset( $_POST['save'] ) || isset( $_POST['publish'] ) ) ) {
            set_time_limit( 240 );
            global $wpdb, $post;
            $post_id = $post->ID;
            $preg = preg_match_all( '/<img.*?src="(.*?)"/', stripslashes( $content ), $matches );
            if ( $preg ) {
                foreach ( $matches[1] as $image_url ) {
                    if ( empty( $image_url ) ) continue;
                    if ( get_option( 'upload_url_path' ) ) {
                        $checkdomain = @parse_url( get_option( 'upload_url_path' ) );
                        $domain = isset( $checkdomain['host'] ) ? $checkdomain['host'] : '' . $_SERVER['HTTP_HOST'] . '';
                    } else {
                        $domain = $_SERVER['HTTP_HOST'];
                    }
                 
                    $pos = !empty( $domain ) && strpos( $image_url, $domain ) ? strpos( $image_url, $domain ) : FALSE;
                    if  ($pos === FALSE ) {
                        //LINK NGOAI
                        //$res = $this->save_images( $image_url, $post_id );
                        //$replace = $res['url'];
                        //$content = str_replace( $image_url, $replace, $content );
                    } else {
                        //LINK TRONG
                        //Get the name file
                        $info_file = pathinfo( $image_url );
                        if ( $info_file['extension'] === "webp" ) continue;
                     
 
                        $image_url_old = $image_url;
                        $res = $this->save_images( $image_url, $post_id );
                        $replace = $res['url'];
                        $content = str_replace( $image_url, $replace, $content );

                        $thumb_attach_id = attachment_url_to_postid( $image_url );
                       
                       //UPDATE meta_value không thấy update
                        $wpdb->query(
                            "UPDATE $wpdb->postmeta
                            SET meta_value = $thumb_attach_id
                            WHERE post_id = $post_id AND meta_key = '_thumbnail_id' AND meta_value <> '0'"
                        );
                      
                    }
                }
            }
        }
        remove_filter( 'content_save_pre', array( $this, 'post_save_images' ) );
        return $content;
    }
    
    function save_images( $image_url, $post_id )
    {
        $stream_opts = [
            "ssl" => [
                "verify_peer" => false,
                "verify_peer_name" => false,
                "ciphers" => "DEFAULT:!DH",
            ]
        ];

        $file = file_get_contents( $image_url, false, stream_context_create( $stream_opts )  );
        $set_ext_image = '.webp';

        $post = get_post( $post_id );
        $posttitle = $post->post_title;
        $postname = sanitize_title( $posttitle );
        //$im_name = "$postname-$post_id.jpg"; 
        $im_name = "$postname-$post_id". $set_ext_image; 
        $res = wp_upload_bits( $im_name, '', $file );
        $this->insert_attachment( $res['file'], $post_id );
        return $res;
    }
    function insert_attachment( $filename, $post_id )
    {
        // the file must be in the WP uploads directory. // tệp phải nằm trong thư mục tải lên WP.
        //$filename = '/path/to/uploads/2013/03/filname.jpg';

        // Get the path to the uploads directory. // Lấy đường dẫn đến thư mục uploads.
        $dirs = wp_upload_dir();

        // the ID of the post to which we are attaching. // ID của bài đăng mà chúng tôi đang đính kèm.
        //$parent_post_id = $post_id;

        // Check the post type that we use in the 'post_mime_type' field. // Kiểm tra loại bài đăng mà chúng tôi sử dụng trong trường 'post_mime_type'.
        $filetype = wp_check_filetype( basename( $filename ), null );
 
        $post = get_post( $post_id );
        $posttitle = $post->post_title;

        if ( isset( $posttitle ) ) {
            $attachment = array(
                //'guid'           => $wp_upload_dir['url'] . '/' . basename( $filename ), 
                'guid' => $dirs['baseurl'] . '/' . _wp_relative_upload_path( $filename ),
                'post_mime_type' => $filetype['type'],
                'post_title'   => sanitize_text_field( $posttitle ), //sanitize_text_field( $title ),
                'post_excerpt' => sanitize_text_field( $posttitle ), //sanitize_text_field( $caption ),
                'post_content' => sanitize_text_field( $posttitle  ), //sanitize_text_field( $description ),
                'post_status'  => 'inherit'
            );

        } else {
            $attachment = array(
                //'guid'           => $wp_upload_dir['url'] . '/' . basename( $filename ), 
                'guid' => $dirs['baseurl'] . '/' . _wp_relative_upload_path( $filename ),
                'post_mime_type' => $filetype['type'],
                'post_title' => preg_replace( '/.[^.]+$/', '', basename( $filename ) ),
                'post_excerpt' => preg_replace( '/.[^.]+$/', '', basename( $filename ) ),
                'post_content' => preg_replace( '/.[^.]+$/', '', basename( $filename ) ),
                'post_status' => 'inherit'
            );

        }

        // Insert the attachment into the database. // Chèn tệp đính kèm vào cơ sở dữ liệu.
        $attach_id = wp_insert_attachment( $attachment, $filename, $post_id ); // $thumb_id = $attach_id

        //require_once( ABSPATH . 'wp-admin/includes/image.php' );

        $attach_data = wp_generate_attachment_metadata( $attach_id, $filename ); // $metadata = $attach_dat
        wp_update_attachment_metadata( $attach_id, $attach_data );

        // Finally! set our post thumbnail
        //update_post_meta( $post_id, '_thumbnail_id', $attach_id ); // KO THAY UPDATE
 

        return $attach_id;
    }
}
new Auto_Save_Images_local();

Nguồn: viblo.asia