日期:2025-05-04 访问:26次 作者:admin
首页 >> 技术文档 >> Wordpress教程 >> 后台设置
找到文件:appsdmincontrollercontentContentController.php
第二步:找到当前页面的public function add()方法里边的
第三步:在当前页面的public function mod()方法里边的
找到文件:appsdmincontrollercontentContentController.php
第一步:在文件的最底部最后一个大括号前面添加一下代码:
// 处理图片
private function processRemoteImages($content) {
$content = html_entity_decode($content, ENT_QUOTES, 'UTF-8');
// 匹配所有图片链接
$pattern = '//i';
preg_match_all($pattern, $content, $matches);
$imageUrls = $matches[1];
$domain = $this->domain();
foreach ($imageUrls as $url) {
// 跳过本地图片
if (strpos($url, $domain) === 0) continue;
if(substr($url, 0, 7) == '/static') continue;
// 下载图片
$savePath = ROOT_PATH . '/static/upload/image/'.date('Ymd');
if (!is_dir($savePath)) mkdir($savePath, 0755, true);
$filename = $this->saveRemoteImage($url, $savePath);
if ($filename) {
// 替换内容中的URL
$newUrl = $domain . '/static/upload/image/'.date('Ymd').'/' . $filename;
$content = str_replace($url, $newUrl, $content);
}
}
return $content;
}
public function saveRemoteImage($url, $savePath) {
if(substr($url, 0, 2) == '//') $url = 'https:'.$url;
// 生成唯一文件名
$ext = pathinfo($url, PATHINFO_EXTENSION);
$filename = time() . mt_rand(100000, 999999) . '.' . $ext;
$fullPath = $savePath . '/' . $filename;
// 下载图片
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 跳过SSL检查
$data = curl_exec($ch);
curl_close($ch);
if ($data) {
file_put_contents($fullPath, $data);
return $filename;
}
return false;
}
public function domain(){
$protocol = ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') || (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https')) ? 'https://' : 'http://'; ;
$host = $_SERVER['HTTP_HOST'];
return $protocol. $host;
}第二步:找到当前页面的public function add()方法里边的
$content = post('content');在后边添加代码:
$content = $this->processRemoteImages($content);//自动处理远程图片
第三步:在当前页面的public function mod()方法里边的
$content = post('content');在后边添加代码:
$content = $this->processRemoteImages($content);//自动处理远程图片
更新缓存,即可自动保存远程图片
注意事项:
1、开启云存储oss之类的不能使用,否则会把图片给你本地化
2、如果远程图片比较多,下载速度回不较慢,这样在保存文章的时候需要稍等一会
相关文章
更多文章-

2025-10-24
TranslatePress如何添加更多语言
read more1.进入后台点击左侧菜单栏【设置】=>【TranslatePress】2.添加多语言点击【选择语言】选择对应的语言,然···
-

2025-10-13
Hostinger如何编辑DNS
read more1.进入后台,点击菜单栏左侧【Domains】2.找到对应的域名,点击【Manage DNS】3.输入对应的记录类型,记录值···
-

2025-10-13
如何给页面添加TDK
read more先安装插件【Yoast SEO】,安装教程点击这里1.基础配置点击启用之后会弹出这个,点击【进行初次设定】进行初···
-

2025-10-11
如何使用elementor编辑分类页?
read more点击左侧菜单栏【模板】点击【全部】找到对应的分类页模板,类型为【Product Archive】为产品分类页,【Arc···

