日期:2025-05-04 访问:23次 作者: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-05-19
wordpress如何配置发件邮箱?
QQ邮箱仅作为发件邮箱,不会在前台展示1.获取QQ邮箱SMTP授权第一步:打开QQ邮箱,找到【设置】=>【账号】···
-
2025-05-18
woocommerce产品如何添加自定义字段
在产品添加页面或者产品编辑页面,点击右上角【显示选项】,勾选【自定义字段】即可滑到下面就可以看到了
-
2025-05-18
wordpress如何批量上传产品
1.上传整理好的产品清单先点击左侧菜单栏中的【All import】然后点击【Upload a file】上传文件类型选择【W···
-
2025-05-17
pbootcms如何设置邮箱通知?
QQ邮箱仅作为发件邮箱,不会在前台展示1.获取QQ邮箱SMTP授权第一步:打开QQ邮箱,找到【设置】=>【账号】···