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])); نقل قول لینک به ارسال
پست های پیشنهاد شده
به گفتگو بپیوندید
هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .