رفتن به مطلب

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


Ehsan

پست های پیشنهاد شده

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

لینک به ارسال

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع ...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...