add_filter('content_save_pre', 'auto_save_image'); function auto_save_image($content) { $upload_path = "; $upload_url_path = get_bloginfo('url'); //Upload directory if (($var = get_option('upload_path')) != "){ $upload_path = $var; } else { $upload_path = 'wp-content/uploads'; } if(get_option('uploads_use_yearmonth_folders')) { $upload_path .= '/'.date("Y",time()).'/'.date("m",time()); } //File address if(($var = get_option('upload_url_path')) != '') { $upload_url_path = $var; } else { $upload_url_path = bloginfo('url'); } if(get_option('uploads_use_yearmonth_folders')) { $upload_url_path .= '/'.date("Y",time()).'/'.date("m",time()); } require_once("../wp-includes/class-snoopy.php"); $snoopy_Auto_Save_Image = new Snoopy; $img = array(); //Use the title of the article as the title of the picture if ( !empty( $_REQUEST['post_title'] ) ) $post_title = wp_specialchars( stripslashes( $_REQUEST['post_title'] )); $text = stripslashes($content); if (get_magic_quotes_gpc()) $text = stripslashes($text); preg_match_all(“/ src=("|'){0,}(http://(.+?))("|'|s)/is”,$text,$img); $img = array_unique(dhtmlspecialchars($img[2])); foreach ($img as $key => $value){ set_time_limit(180); //The maximum download time allowed for each image, seconds if(str_replace(get_bloginfo('url'),"",$value)==$value&&str_replace(get_bloginfo('home'),"",$value)==$value){ //Judge whether it is a local image, if not, save it to the server $fileext = substr(strrchr($value,'.'),1); $fileext = strtolower($fileext); if($fileext==""||strlen($fileext)>4) $fileext = "jpg"; $savefiletype = array('jpg','gif','png','bmp'); if (in_array($fileext, $savefiletype)){ if($snoopy_Auto_Save_Image->fetch($value)){ $get_file = $snoopy_Auto_Save_Image->results; }else{ echo "error fetching file: ".$snoopy_Auto_Save_Image->error.""; echo “error url: “.$value; die(); } $filetime = time(); $filepath = "/".$upload_path; //Path directory where the image is saved !is_dir("..".$filepath) ? mkdirs("..".$filepath) : null; //$filename = date("His",$filetime).random(3); $filename = substr($value,strrpos($value,'/'),strrpos($value,'.')-strrpos($value,'/')); //$e = '../'.$filepath.$filename.'.'.$fileext; //if(!is_file($e)) { // copy(htmlspecialchars_decode($value),$e); //} $fp = @fopen("..".$filepath.$filename.".".$fileext,"w"); @fwrite($fp,$get_file); fclose($fp); $wp_filetype = wp_check_filetype( $filename.".".$fileext, false ); $type = $wp_filetype['type']; $post_id = (int)$_POST['temp_ID2']; $title = $post_title; $url = $upload_url_path.$filename.".".$fileext; $file = $_SERVER['DOCUMENT_ROOT'].$filepath.$filename.".".$fileext; //Add database record $attachment = array( 'post_type' => 'attachment', 'post_mime_type' => $type, 'guid' => $url, 'post_parent' => $post_id, 'post_title' => $title, 'post_content' => ', ); $id = wp_insert_attachment($attachment, $file, $post_parent); $text = str_replace($value,$url,$text); //Replace the image address in the article } } } $content = AddSlashes($text); remove_filter('content_save_pre', 'auto_save_image'); return $content; } function mkdirs($dir) { if(!is_dir($dir)) { mkdirs(dirname($dir)); mkdir($dir); } return ; } function dhtmlspecialchars($string) { if(is_array($string)) { foreach($string as $key => $val) { $string[$key] = dhtmlspecialchars($val); } }else{ $string = str_replace('&', '&', $string); $string = str_replace('"', '"', $string); $string = str_replace(”, $string); $string = preg_replace('/&(#\d;)/', '&\1', $string); } return $string; } Just add it to the theme's functions.php file or the import file of functions.php. Whenever you publish an article in WordPress, if the article contains external link images, it will be automatically localized. It is very convenient without any settings. via: http://y-cy.cn/86.html |