WordPress でのリモート画像ファイルの自動ローカライズ

WordPress でのリモート画像ファイルの自動ローカライズ

フィルターを追加します('content_save_pre', 'auto_save_image');
関数 auto_save_image($content) {
$アップロードパス = ";
$upload_url_path = get_bloginfo('url');

//アップロードディレクトリ
(($var = get_option('upload_path')) != "){の場合
$upload_path = $var;
} それ以外 {
$upload_path = 'wp-content/uploads';
}
if(get_option('uploads_use_yearmonth_folders')) {
$upload_path .= '/'.date("Y",time()).'/'.date("m",time());
}

//ファイルアドレス
if(($var = get_option('upload_url_path')) != '') {
$upload_url_path = $var;
} それ以外 {
$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 = 新しいスヌーピー;

$img = 配列();

//記事のタイトルを画像のタイトルとして使用します
if ( !empty( $_REQUEST['post_title'] ) )
$post_title = wp_specialchars( stripslashes( $_REQUEST['post_title'] ));
$text = スラッシュを削除します($content);
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 を $key => $value として){
set_time_limit(180); //各画像に許可される最大ダウンロード時間(秒)
if(str_replace(get_bloginfo('url'),"",$value)==$value&&str_replace(get_bloginfo('home'),"",$value)==$value){
//ローカル画像かどうか判断し、そうでない場合はサーバーに保存します
$fileext = substr(strrchr($value,'.'),1);
$fileext = strtolower($fileext);
$fileext==""||strlen($fileext)>4の場合
$fileext = "jpg";
$savefiletype = 配列('jpg','gif','png','bmp');
if (in_array($fileext, $savefiletype)){
if($snoopy_Auto_Save_Image->fetch($value)){
$get_file = $snoopy_Auto_Save_Image->結果;
}それ以外{
echo "ファイルの取得中にエラーが発生しました: ".$snoopy_Auto_Save_Image->error."";
echo “エラー url: “.$value;
死ぬ();
}
$filetime = 時間();
$filepath = "/".$upload_path; //画像が保存されるディレクトリのパス
!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)) {
// コピー(htmlspecialchars_decode($value),$e);
//
$fp = @fopen(「..」.$ファイルパス.$ファイル名「..」.$ファイル拡張子「w」);
$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;

//データベースレコードを追加
$添付ファイル = 配列(
'post_type' => '添付ファイル'、
'post_mime_type' => $type、
'guid' => $url,
'post_parent' => $post_id,
'post_title' => $title,
'投稿コンテンツ' => ',
);
$id = wp_insert_attachment($attachment、$file、$post_parent);
$text = str_replace($value,$url,$text); //記事内の画像アドレスを置き換えます
}
}
}
$content = スラッシュを追加します($text);
フィルターを削除します('content_save_pre', 'auto_save_image');
$content を返します。
}

関数 mkdirs($dir)
{
if(!is_dir($dir))
{
mkdirs(dirname($dir));
mkdir($dir);
}
戻る ;
}
関数 dhtmlspecialchars($string) {
if(is_array($string)) {
foreach($文字列を$key => $valとして) {
$文字列[$キー] = dhtmlspecialchars($val);
}
}それ以外{
$文字列 = str_replace('&', '&', $文字列);
$文字列 = str_replace('"', '"', $文字列);
$文字列 = str_replace(”, $文字列);
$string = preg_replace('/&(#\d;)/', '&\1', $string);
}
$文字列を返します。
}

テーマの functions.php ファイルまたは functions.php のインポート ファイルに追加するだけです。WordPress で記事を公開するたびに、記事に外部リンク画像が含まれている場合は自動的にローカライズされます。設定なしで非常に便利です。

出典: http://y-cy.cn/86.html

<<:  qsh.eu は 1 ユーロ/1.5 ユーロのドメイン名割引を提供しています

>>:  OpenVZ.io: 月額 4 ポンド/3GB RAM/50GB ストレージ/1000G 帯域幅/OpenVZ

推薦する

FlowVPS: $46/年/4GB メモリ/30GB NVMe スペース/500GB トラフィック/KVM/オーストラリア

FlowVPS は、let モデレーターの trewq (別の元モデレーターの Ishaq と比べる...

大阪学院大学はどうですか?大阪学院大学の口コミとウェブサイト情報

大阪学院大学のウェブサイトは何ですか?大阪学院大学は日本の私立大学です。 1940年に創立され、19...

【ダブル11】PIGYun:ダブル11イベント、香港、米国GIA、GIAミックス9929、韓国CN2などのKVM VPS、月額14元から

PIGYunDataは2019年に設立されました。2021年はPIGYunがユーザーに安定したサービ...

オーランドインターナショナルはどうですか? Aolan Internationalのレビューとウェブサイト情報

Aolan Internationalとは何ですか?オラム・インターナショナルは、65の国と地域に食...

森永ミルクはいかがでしょうか?森永牛乳のレビューとウェブサイト情報

森永乳業のウェブサイトとは何ですか?森永乳業株式会社(MORINAGA MILK INDUSTRY ...

オウル工科大学はどうですか?オウル工科大学のレビューとウェブサイト情報

オウル工科大学のウェブサイトは何ですか?オウル工科大学(Oulun seudun ammattiko...

Uovz:ダブル11、徐州マルチライン、上海聯通、上海CN2、泉州CN2などで50%割引、最低年間支払額は128元

長らく在庫切れとなっていた徐州マルチラインNATが50%割引で少量補充されました。ご注文リンク: h...

ホスト: 20 ユーロ/年/2GB RAM/40GB ハードドライブ/1TB 帯域幅/OpenVZ/リトアニア

ヨーロッパのホスティング会社である Hostens は、公式には 2003 年に設立されたと主張して...

ウクライナの法律事務所はどのようなものですか?ウクライナの法律事務所のレビューとウェブサイト情報

ウクライナ法律事務所のウェブサイトは何ですか? Lawfirms は、ウクライナの外国人に対して主に...

QingCloud: 15.6 元/月/1 コア/1GB メモリ/20GB SSD スペース/500GB トラフィック/5Mbps-30Mbps ポート/KVM/日本 CN2

中国商人のQingCloud Interconnectは、日本CN2、香港などでKVM VPSを提供...

プルゼニの勝利はどうですか?ピルゼン ビクトリーのレビューとウェブサイト情報

Plzen Victoryのウェブサイトは何ですか? FC ヴィクトリア プルゼニは、1911 年に...

中国のイラク大使館はどうですか?中国駐在イラク大使館のレビューとウェブサイト情報

中国のイラク大使館のウェブサイトは何ですか?このウェブサイトは北京にあるイラク共和国大使館の公式ウェ...

GetWebHosting: £17.99/年/Ryzen/1GB メモリ/16GB NVMe スペース/無制限トラフィック/1Gbps ポート/DDOS/KVM/フランス/英国/ドイツなど。

英国の商人である GetWebHosting は、主に英国のホスティング サービスを提供しています。...

HostEurope: 月額 9.99 ユーロ / 2G メモリ / 100GB SSD ハードドライブ / 無制限トラフィック / KVM / ドイツ

ドイツのホスティングプロバイダーである HostEurope は 1997 年に設立され、さまざまな...

キプロスの中国大使館はどうですか?キプロス駐在中国大使館のレビューとウェブサイト情報

キプロス駐在中国大使館のウェブサイトは何ですか?キプロス共和国駐在中華人民共和国大使館に関する情報:...