Ehsan 4 ارسال شده در اردیبهشت 93 گزارش بازنشر ارسال شده در اردیبهشت 93 سلام دوستان من افزونه WPMU Automatic Links رو برای لینک کردن مطالب داخلی پست ها به تگ ها و دسته ها نصب کردم.اما یه مشکلی داره که به جای یک لینک دو لینک تولید میکنه.مثلا اینجوری:<a href="Link" class="cssclass1" target="_blank" title="test"></a><a href="Link" class="cssclass1" target="_blank" title="test">test</a>یعنی به ازای هر لینک یک لینک با همون مشخصات ولی با متن خالی اضافه میشه به مطلب.من کدهای افزونه رو باز کردم و تابع مربوطه رو استخراج کردم ولی نتونستم مشکل رو حل کنم.دوستان اگه میتونید راهنمایی کنید چون خیلی نیاز دارم به این افزونه. public function changeContent($content = ''/*, $exclude = array()*/){ global $wpdb; $table_name= $wpdb->prefix.self::DOMAIN; $links = $wpdb->get_results("select * from $table_name"); //prepare the content $mark = "!!!WPMUAL---CUTHERE!!!"; $content = str_replace(array("<",">"),array($mark."<",">".$mark),$content); $content = explode($mark, $content); foreach($content as $keyLine => $line){ if(strpos($line,"<") !== false){ continue; } foreach($links as $link){ //if(in_array($link->text, $exclude)){ // continue; //} //$exclude[] = $link->text; $find = '/'.$link->text.'/i'; $isFind = false; preg_match_all($find, $line, $matches, PREG_OFFSET_CAPTURE); $matchData = $matches[0]; rsort($matchData); foreach($matchData as $index => $match){ $isFind = $match; $link->type = $this->getTarget($link->type); $link->rel = $this->getRel($link->rel); $replacement = '<a href="'.$link->url.'"'; if (!empty($link->css)) $replacement .= ' class="'.$link->css.'"'; if (!empty($link->type)) $replacement .= ' target="'.$link->type.'"'; if (!empty($link->rel)) $replacement .= ' rel="'.$link->rel.'"'; $replacement .= ' title="'.$link->anchortext.'" >'.$isFind[0].'</a>'; $line = substr($line, 0, $isFind[1]) . $replacement . substr($line, $isFind[1] + strlen($isFind[0])); } } $content[$keyLine] = $line; } $content = implode("",$content); return $content; }به نظرم مشکل احتمالا مربوط به این خط هست:$line = substr($line, 0, $isFind[1]) . $replacement . substr($line, $isFind[1] + strlen($isFind[0])); لینک به ارسال
پست های پیشنهاد شده
لطفا برای ارسال دیدگاه وارد شوید
شما بعد از اینکه وارد حساب کاربری خود شدید می توانید دیدگاهی ارسال کنید
ورود به حساب کاربری