Ehsan

مشکل افزونه WPMU Automatic Links

1 پست در این موضوع قرار دارد

سلام دوستان من افزونه 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]));

0

به اشتراک گذاری این پست


لینک به پست

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری