// 从文本域解析图片URL,返回指定数量的不同随机图片URL private function get_random_img_urls( $count = 1 ) { $raw = get_option( self::OPTION_IMG_URLS, '' ); if ( empty( $raw ) ) return array(); $lines = explode( "\n", $raw ); $urls = array(); foreach ( $lines as $line ) { $url = trim( $line ); if ( ! empty( $url ) ) { $urls[] = $url; } } if ( empty( $urls ) ) return array(); // 打乱数组顺序,保证随机性 shuffle( $urls ); // 如果需要的数量大于可用数量,循环补充 $result = array(); $urlCount = count( $urls ); for ( $i = 0; $i < $count; $i++ ) { $result[] = $urls[ $i % $urlCount ]; } return $result; } // 单张随机图兼容方法(保留原有调用) private function get_random_img_url() { $urls = $this->get_random_img_urls( 1 ); return $urls ? $urls[0] : ''; } private function process_post( $post_id, $source ) { $post = get_post( $post_id ); if ( ! $post || 'publish' !== $post->post_status ) return; $content = (string)$post->post_content; $images = $this->extract_image_urls( $content ); // 文章无图片 → 中间插入图片(原有逻辑不变) if ( empty( $images ) ) { $new_img_url = $this->get_random_img_url(); if ( empty( $new_img_url ) ) { $this->insert_log( array( 'post_id' => $post_id, 'post_title' => get_the_title( $post_id ), 'status' => 'failed', 'reason' => '未配置可用图片地址,无法新增图片', 'image_count' => 0, 'broken_count' => 0, 'replaced_count' => 0, 'old_urls' => array(), 'new_urls' => array(), 'run_source' => $source ) ); return; } $img_tag = '

'; $content_len = mb_strlen( $content ); $mid_pos = (int)( $content_len / 2 ); $new_content = mb_substr( $content, 0, $mid_pos ) . $img_tag . mb_substr( $content, $mid_pos ); $updated = wp_update_post( array( 'ID' => $post_id, 'post_content' => $new_content ), true ); if ( is_wp_error( $updated ) ) { $this->insert_log( array( 'post_id' => $post_id, 'post_title' => get_the_title( $post_id ), 'status' => 'failed', 'reason' => '新增图片失败:' . $updated->get_error_message(), 'image_count' => 0, 'broken_count' => 0, 'replaced_count' => 1, 'old_urls' => array(), 'new_urls' => array( $new_img_url ), 'run_source' => $source ) ); return; } clean_post_cache( $post_id ); $this->insert_log( array( 'post_id' => $post_id, 'post_title' => get_the_title( $post_id ), 'status' => 'add_image', 'reason' => '文章无图片,已在内容中间插入图片', 'image_count' => 1, 'broken_count' => 0, 'replaced_count' => 1, 'old_urls' => array(), 'new_urls' => array( $new_img_url ), 'run_source' => $source ) ); return; } // 检测失效图片(原有逻辑不变) $broken_urls = array(); $reasons = array(); foreach ( $images as $url ) { $check = $this->is_image_url_valid( $url ); if ( ! $check['valid'] ) { $broken_urls[] = $url; $reasons[] = $url . ' => ' . $check['reason']; } } $broken_urls = array_values( array_unique( $broken_urls ) ); if ( empty( $broken_urls ) ) { $this->insert_log( array( 'post_id' => $post_id, 'post_title' => get_the_title( $post_id ), 'status' => 'no_need', 'reason' => '所有图片均可正常访问', 'image_count' => count( $images ), 'broken_count' => 0, 'replaced_count' => 0, 'old_urls' => array(), 'new_urls' => array(), 'run_source' => $source ) ); return; } // 替换失效图片(核心修改部分) $new_content = $content; $replace_map = array(); $replaced_count = 0; $failed_reason = ''; // 获取与失效图片数量匹配的随机备用图 $rand_imgs = $this->get_random_img_urls( count( $broken_urls ) ); if ( empty( $rand_imgs ) ) { $failed_reason = '未配置可用图片地址,无法替换'; } else { // 为每个失效URL分配不同的备用图 foreach ( $broken_urls as $index => $bad_url ) { $new_img = $rand_imgs[ $index ]; if ( false !== strpos( $new_content, $bad_url ) ) { $new_content = str_replace( $bad_url, $new_img, $new_content ); $replace_map[ $bad_url ] = $new_img; $replaced_count++; } } } if ( $failed_reason ) { $this->insert_log( array( 'post_id' => $post_id, 'post_title' => get_the_title( $post_id ), 'status' => 'failed', 'reason' => $failed_reason . ';失效明细:' . implode( ';', $reasons ), 'image_count' => count( $images ), 'broken_count' => count( $broken_urls ), 'replaced_count' => $replaced_count, 'old_urls' => $broken_urls, 'new_urls' => $replace_map, 'run_source' => $source ) ); return; } if ( $new_content === $content || $replaced_count <= 0 ) { $this->insert_log( array( 'post_id' => $post_id, 'post_title' => get_the_title( $post_id ), 'status' => 'failed', 'reason' => '检测到失效图片,但未能完成替换;失效明细:' . implode( ';', $reasons ), 'image_count' => count( $images ), 'broken_count' => count( $broken_urls ), 'replaced_count' => 0, 'old_urls' => $broken_urls, 'new_urls' => $replace_map, 'run_source' => $source ) ); return; } $updated = wp_update_post( array( 'ID' => $post_id, 'post_content' => $new_content ), true ); if ( is_wp_error( $updated ) ) { $this->insert_log( array( 'post_id' => $post_id, 'post_title' => get_the_title( $post_id ), 'status' => 'failed', 'reason' => '文章更新失败:' . $updated->get_error_message(), 'image_count' => count( $images ), 'broken_count' => count( $broken_urls ), 'replaced_count' => 0, 'old_urls' => $broken_urls, 'new_urls' => $replace_map, 'run_source' => $source ) ); return; } clean_post_cache( $post_id ); $this->insert_log( array( 'post_id' => $post_id, 'post_title' => get_the_title( $post_id ), 'status' => 'success', 'reason' => '已替换失效图片;失效明细:' . implode( ';', $reasons ), 'image_count' => count( $images ), 'broken_count' => count( $broken_urls ), 'replaced_count' => $replaced_count, 'old_urls' => $broken_urls, 'new_urls' => $replace_map, 'run_source' => $source ) ); } 明星信息-番剧百科-第359页
好东西要分享

明星信息

第359页

妇好简介

妇好简介 妇好,生涯于纪元前百年的前半叶武丁重整商朝代时代,商朝代国王武丁的妻子,中国历史上最早的女革命家和军事家。她美若天仙,且聪慧通灵本领高强,深受武丁钟爱倚重,主掌国度祭奠及兵戎小事。贤后、良相协助,武功文治朝纲大振,妇好更是头马倥偬...

姒少康简介

姒少康简介 少康(夏朝国君)即姒少康。又名杜康,生卒年没有详,相子,攻杀寒浞,振兴夏朝,正在位年。正在他管理下,天下太平,文明大盛,史称“少康中兴”。纪元前0病死,葬于阳夏。 姒少康集体材料 中文名:姒少康 别号:杜康 国别:男 所处时期:...

姫咲静香材料

姫咲静香材料 姫咲静香,日文名:ひめさきしずか,英文名:Himesaki Shizuka,年0月日死亡于日/眧缃东京都,是日/眧缃AWV女牲。正在与苍井怜消除协作联系后,H.M.P延续每个月都要推出新娘的制 度,正在00日月又推出了有小恶魔...

姫野亲爱(姫贪心愛)材料

姫野亲爱(姫贪心爱)材料 姫野亲爱,日文名:姫贪心爱,英文名: Kokoa Himeno,年0月0日死亡于日/眧缃群马县,是日/眧缃AWV女牲,wulinjj.com0日月0日入行,喜好操持、演奏。 姫野亲爱(姫贪心爱)材料 中文名:姫野亲...

姬咲莉莉亚(姫咲りりあ)材料

姬咲莉莉亚(姫咲りりあ)材料 姬咲莉莉亚,日文名:姫咲りりあ、ひめさきりりあ,英文名:Himesaki Riria,日月日死亡于日/眧缃神爱知县,是日/眧缃AWV女牲,00年入行,00年引退。姬咲莉莉亚占有傲人的上围与及冷傲的外貌,00年0...

姬川丽奈(姫川りな)材料

姬川丽奈(姫川りな)材料 姬川丽奈,日文名:姫川りな、ひめかわ りな,英文名:Rina Himekawa,日月日死亡于日/眧缃千叶县,是日/眧缃AWV女牲,00年入行,00年引退。姫川りな是一位正在00日月以作品文章“姫初め”正在成人制片公...

姬川优奈(姫川ゆうな)材料

姬川优奈(姫川ゆう な)材料 姬川优奈,日文名:姫川ゆうな、ひめかわゆうな,英文名:Himekawa Yuuna,年0月0日死亡于日/眧缃神奈川县,是日/眧缃AWV女牲,0年0月0日入行,从属于WANZ公司,喜好电心、芭蕾。 姬川优奈(姫川...

姬野爱材料

姬野爱材料 姬野爱,日文名:ひめの あい,英文名:Himeno ai,0日月日死亡于日/眧缃东京都,是日/眧缃AWV女牲,姬野爱是一位正在00年以作品文章“エ.韡ビュアデビュー初脱ぎプレイ part.”入行的AWV个人女牲。姬野爱有个绰号...

娥皇女英简介

娥皇女英简介 娥皇女英,中国现代传闻中尧的两个女儿。也称“皇英”。长曰娥皇,次曰女英,姊妹同嫁帝舜为妻。舜父顽,母嚣,弟劣,曾屡次欲置舜 城死地,终因娥皇女英之助而遇险。舜继尧位,娥皇女英之其妃,后舜至北方巡逻,死于苍梧。二妃往寻,泪染青竹...

嫘祖简介

嫘祖简介 嫘祖:一作“累祖”。神话传闻人士。听说是西陵氏之女,南方群落领袖黄帝的元妃(《诗经》谈到黄帝娶西陵氏之女嫘祖为妻)。生二子:玄嚣(即少昊)、 昌意。玄嚣之子蟜极,蟜极之子为五帝之一的帝喾;昌意娶蜀山氏女为妻,生高阳,承继天下,这就...

孙子韬略简介

孙子韬略简介 《孙子韬略》别称《孙武韬略》、《吴孙子韬略》、《孙子兵符》《孙武兵符》等,是中国现存最早的一部兵符,备受推崇,旁听者辈出。也是社会上最早的军事着述,被誉为“战术学圣典”和“现代第一兵符”。各方体现了道门与兵家的哲学,它正在本国...

宇佐木桃(宇佐木もも)材料

宇佐木桃(宇佐木もも)材料 宇佐木桃,日文名:宇佐木もも、うさきもも,英文名:Momo Usaki,年0月日死亡于日/眧缃神奈川县,是日/眧缃AWV女牲,0日月日入行,从属于E-BODY公司,喜好卡拉OK。 宇佐木桃(宇佐木もも)材料 中文...

宇佐美奈奈(宇佐美なな)材料

宇佐美奈奈(宇佐美なな)材料 宇佐美奈奈,日文名:宇佐美なな、うさみなな,英文名:Usami Nana,日月日死亡于日/眧缃东京都,是日/眧缃AWV女牲,0年0月日入行,从属于S.P.C公司,喜好游泳、看电影。 宇佐美奈奈(宇佐美なな)材料...

宇佐美舞(宇佐美まい)材料

宇佐美舞(宇佐美まい)材料 宇佐美舞,日文名:宇佐美まい、うさみまい,英文名:Mai Usami,年0月日死亡于日/眧缃神奈川县,是日/眧缃AWV女牲,0日月0日入行,DJ.COM从属于New 提高版型设计,使面料不再受到束缚,设计师设计出...

宇垣千智(宇垣ちさと)材料

宇垣千智(宇垣ちさと)材料 宇垣千智,日文名:宇垣ちさと、うがきちさと,英文名:Ugaki Chisato,年0月0日死亡于日/眧缃长野县,是日/眧缃AWV女牲、无线电台掌管人,0年0月0日入行,从属于プレミアム公司,喜好听音乐、看电影。 ...